public String marshal(Scenario sc) { if (sc.getFixtures().size() > 1 && sc.getFixtures().get(sc.getFixtures().size() - 1) instanceof ExecutionTrace) { Object f = sc.getFixtures().get(sc.getFixtures().size() - 2); if (f instanceof Expectation) { sc.getFixtures().remove(sc.getFixtures().size() - 1); } } String s = xt.toXML(sc); return s; }
public String marshal(Scenario sc) { if (sc.getFixtures().size() > 1 && sc.getFixtures().get(sc.getFixtures().size() - 1) instanceof ExecutionTrace) { Object f = sc.getFixtures().get(sc.getFixtures().size() - 2); if (f instanceof Expectation) { sc.getFixtures().remove(sc.getFixtures().size() - 1); } } String s = xt.toXML(sc); return s; }
private void removeGiven(ExecutionTrace executionTrace) { Collections.reverse( getFixtures() ); boolean remove= false; Iterator<Fixture> iterator = getFixtures().iterator(); while (iterator.hasNext()) { Fixture fixture = iterator.next(); // Catch the first or next ExecutionTrace. if (fixture.equals(executionTrace)) { remove = true; } else if (remove && fixture instanceof ExecutionTrace) { break; } if (remove && !(fixture instanceof Expectation)) { iterator.remove(); globals.remove(fixture); } } Collections.reverse( getFixtures() ); }
private void removeGiven(ExecutionTrace executionTrace) { Collections.reverse( getFixtures() ); boolean remove= false; Iterator<Fixture> iterator = getFixtures().iterator(); while (iterator.hasNext()) { Fixture fixture = iterator.next(); // Catch the first or next ExecutionTrace. if (fixture.equals(executionTrace)) { remove = true; } else if (remove && fixture instanceof ExecutionTrace) { break; } if (remove && !(fixture instanceof Expectation)) { iterator.remove(); globals.remove(fixture); } } Collections.reverse( getFixtures() ); }
private void removeExpected(ExecutionTrace executionTrace) { boolean remove = false; for ( Iterator<Fixture> iterator = getFixtures().iterator(); iterator.hasNext(); ) { Fixture fixture = iterator.next(); if ( fixture.equals( executionTrace ) ) { remove = true; continue; } else if ( remove && fixture instanceof ExecutionTrace ) { break; } if ( remove && fixture instanceof Expectation) { iterator.remove(); globals.remove( fixture ); } } }
private void removeExpected(ExecutionTrace executionTrace) { boolean remove = false; for ( Iterator<Fixture> iterator = getFixtures().iterator(); iterator.hasNext(); ) { Fixture fixture = iterator.next(); if ( fixture.equals( executionTrace ) ) { remove = true; continue; } else if ( remove && fixture instanceof ExecutionTrace ) { break; } if ( remove && fixture instanceof Expectation) { iterator.remove(); globals.remove( fixture ); } } }
/** * Will slip in a fixture after the specified one, but before the next * execution trace. */ public void insertBetween(Fixture fixtureBeforeTheNewOne, Fixture newFixture) { boolean inserted = false; int start = (fixtureBeforeTheNewOne == null) ? 0 : fixtures.indexOf( fixtureBeforeTheNewOne ) + 1; for ( int j = start; j < fixtures.size(); j++ ) { if ( fixtures.get( j ) instanceof ExecutionTrace) { getFixtures().add( j, newFixture ); return; } } if ( !inserted ) { fixtures.add( newFixture ); } }
/** * Will slip in a fixture after the specified one, but before the next * execution trace. */ public void insertBetween(Fixture fixtureBeforeTheNewOne, Fixture newFixture) { boolean inserted = false; int start = (fixtureBeforeTheNewOne == null) ? 0 : fixtures.indexOf( fixtureBeforeTheNewOne ) + 1; for ( int j = start; j < fixtures.size(); j++ ) { if ( fixtures.get( j ) instanceof ExecutionTrace) { getFixtures().add( j, newFixture ); return; } } if ( !inserted ) { fixtures.add( newFixture ); } }
public void run(Scenario scenario) throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException { MVEL.COMPILER_OPT_ALLOW_NAKED_METH_CALL = true; scenario.setLastRunResult(new Date()); populateGlobals(scenario.getGlobals()); applyFixtures(scenario.getFixtures(), createScenarioSettings(scenario)); }
public void run(Scenario scenario) throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException { MVEL.COMPILER_OPT_ALLOW_NAKED_METH_CALL = true; scenario.setLastRunResult(new Date()); populateGlobals(scenario.getGlobals()); applyFixtures(scenario.getFixtures(), createScenarioSettings(scenario)); }
@Test public void testTrimUneededSection() { Scenario sc = getDemo(); Scenario orig = getDemo(); sc.getFixtures().add(new ExecutionTrace()); int origSize = orig.getFixtures().size(); assertEquals(origSize + 1, sc.getFixtures().size()); String xml = ScenarioXMLPersistence.getInstance().marshal(sc); Scenario sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml); assertEquals(origSize, sc_.getFixtures().size()); verifyFieldDataNamesAreNotNull(sc_); }
@Test public void testLoadCollectionLegacyFieldTestScenario() throws Exception { StringBuffer contents = new StringBuffer(); BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("CollectionLegacyFieldTestScenario.xml"))); String text = null; while ((text = reader.readLine()) != null) { contents.append(text); } } catch (Exception e) { if (reader != null) { reader.close(); } throw new IllegalStateException("Error while reading file.", e); } Scenario scenario = ScenarioXMLPersistence.getInstance().unmarshal(contents.toString()); verifyFieldDataNamesAreNotNull(scenario); FactData factData = (FactData) scenario.getFixtures().get(0); assertTrue(factData.getFieldData().get(0) instanceof CollectionFieldData); }
@Test public void testLoadCollectionFieldTestScenario() throws Exception { StringBuffer contents = new StringBuffer(); BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("CollectionFieldTestScenario.xml"))); String text = null; while ((text = reader.readLine()) != null) { contents.append(text); } } catch (Exception e) { if (reader != null) { reader.close(); } throw new IllegalStateException("Error while reading file.", e); } Scenario scenario = ScenarioXMLPersistence.getInstance().unmarshal(contents.toString()); verifyFieldDataNamesAreNotNull(scenario); FactData factData = (FactData) scenario.getFixtures().get(0); assertTrue(factData.getFieldData().get(0) instanceof CollectionFieldData); }
@Test public void testLoadEvenOlderCollectionLegacyFieldTestScenario() throws Exception { StringBuffer contents = new StringBuffer(); BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("CollectionLegacyFieldTestScenario2.xml"))); String text = null; while ((text = reader.readLine()) != null) { contents.append(text); } } catch (Exception e) { if (reader != null) { reader.close(); } throw new IllegalStateException("Error while reading file.", e); } Scenario scenario = ScenarioXMLPersistence.getInstance().unmarshal(contents.toString()); verifyFieldDataNamesAreNotNull(scenario); FactData factData = (FactData) scenario.getFixtures().get(0); assertTrue(factData.getFieldData().get(0) instanceof CollectionFieldData); }
@Test public void testNewScenario() { FactData d1 = new FactData("Driver", "d1", ls(new FieldData[]{new FieldData("age", "42"), new FieldData("name", "david")}), false); Scenario sc = new Scenario(); sc.getFixtures().add(d1); sc.getFixtures().add(new ExecutionTrace()); int size = sc.getFixtures().size(); String xml = ScenarioXMLPersistence.getInstance().marshal(sc); Scenario sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml); assertEquals(size, sc_.getFixtures().size()); sc = new Scenario(); sc.getFixtures().add(new ExecutionTrace()); xml = ScenarioXMLPersistence.getInstance().marshal(sc); sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml); assertEquals(1, sc_.getFixtures().size()); }
private void verifyFieldDataNamesAreNotNull(Scenario sc) { for (Fixture fixture : sc.getFixtures()) { if (fixture instanceof FactData) { FactData factData = (FactData) fixture; for (Field field : factData.getFieldData()) { if (field instanceof FieldData) { FieldData fieldData = (FieldData) field; assertNotNull(fieldData.getName()); } } } } }
@Test public void testToXML() { ScenarioXMLPersistence p = ScenarioXMLPersistence.getInstance(); Scenario sc = new Scenario(); String s = p.marshal(sc); assertNotNull(s); sc = getDemo(); s = p.marshal(sc); assertTrue(s.indexOf("<ruleName>Life unverse and everything</ruleName>") > 0); Scenario sc_ = p.unmarshal(s); assertEquals(sc.getGlobals().size(), sc_.getGlobals().size()); assertEquals(sc.getFixtures().size(), sc_.getFixtures().size()); assertTrue(s.indexOf("org.drools") == -1); //check we have aliased all }
@Test public void testMapFactTypes() { Scenario sc = new Scenario(); sc.getFixtures().add( new FactData( "X", "q", null, false ) ); sc.getGlobals().add( new FactData( "Q", "x", null, false ) ); Map r = sc.getVariableTypes(); assertEquals( 2, r.size() ); assertEquals( "X", r.get( "q" ) ); assertEquals( "Q", r.get( "x" ) ); }
@Test public void testPopulateFactsWithInterfaces() throws Exception { Scenario sc = new Scenario(); List facts = ls(new FactData("List", "ls", new ArrayList(), false)); List globals = ls(new FactData("List", "ls", new ArrayList(), false)); sc.getFixtures().addAll(facts); sc.getGlobals().addAll(globals); TypeResolver resolver = new ClassTypeResolver(new HashSet<String>(), getClassLoader()); resolver.addImport("java.util.List"); ScenarioRunner runner = new ScenarioRunner( resolver, getClassLoader(), new MockWorkingMemory()); runner.run(sc); }
@Test public void testIsFactNameUsed() { Scenario sc = new Scenario(); sc.getGlobals().add( new FactData( "X", "x", null, false ) ); sc.getFixtures().add( new FactData( "Q", "q", null, false ) ); sc.getFixtures().add( new ExecutionTrace() ); assertTrue( sc.isFactNameReserved( "x" ) ); assertTrue( sc.isFactNameReserved( "q" ) ); assertFalse( sc.isFactNameReserved( "w" ) ); sc = new Scenario(); assertFalse( sc.isFactNameReserved( "w" ) ); }