@Test
	public void mixSplitSerial() {
		js = parse("<jobA & jobB || jobC & jobD>");
		assertEquals("<jobA & jobB || jobC & jobD>", js.getJobDefinitionText());
		assertEquals("<jobA & jobB || jobC & jobD>", js.stringify());
		JobNode jn = js.getJobNode();
		assertTrue(jn.isSplit());
		assertEquals(3, jn.getSeriesLength());
		JobNode ja = jn.getSeriesElement(0);
		assertTrue(ja.isJobDescriptor());
		assertTrue(((JobDescriptor) ja).isReference());
		assertEquals("jobA", ((JobReference) ja).getName());
		JobNode jb = jn.getSeriesElement(1);
		assertTrue(jb.isFlow());
		assertEquals("jobB", jb.getSeriesElement(0).stringify());
		assertEquals("jobC", jb.getSeriesElement(1).stringify());
	}
Parse job specifications and verify either the correct abstract syntax tree is produced or the current exception comes out.
The parser does no semantic validation, it is purely syntax checking.

@author Andy Clement
spring-xd-dirt/src/test/java/org/springframework/xd/dirt/job/dsl/JobParserTests.java