SCXMLFrontier extends SCXMLExecutor implements Frontier { public void searchForScenarios(ProcessingStrategy processingStrategy, AtomicBoolean flag) { dfs(processingStrategy, flag, root); } SCXMLFrontier(final PossibleState possibleState, final SCXML model,
                         final List<CustomTagExtension> tagExtensionList);  SCXMLFrontier(final PossibleState possibleState, final SCXML model); void searchForScenarios(ProcessingStrategy processingStrategy, AtomicBoolean flag); PossibleState getRoot();  }
@Test public void testMultiVariableAssignment() { SCXMLEngine e = new SCXMLEngine(); InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); e.setModelByInputFileStream(is); List<CustomTagExtension> tagExtensionList = customTagExtensionList(); try { List<PossibleState> bfs = e.bfs(343); PossibleState p = bfs.get(0); try { is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); SCXML model = SCXMLParser.parse(new InputSource(is), null, customActionsFromTagExtensions(tagExtensionList)); SCXMLFrontier frontier = new SCXMLFrontier(p, model, tagExtensionList); Queue<Map<String, String>> queue = new LinkedList<>(); AtomicBoolean flag = new AtomicBoolean(false); frontier.searchForScenarios(new QueueResultsProcessing(queue), flag); Assert.assertEquals(queue.size(), 6); } catch (IOException | SAXException ex) { Assert.fail(); } } catch (ModelException ex) { Assert.fail(); } }
@Test public void testExitFlag() { SCXMLEngine e = new SCXMLEngine(); InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); e.setModelByInputFileStream(is); List<CustomTagExtension> tagExtensionList = customTagExtensionList(); try { List<PossibleState> bfs = e.bfs(1); PossibleState p = bfs.get(0); try { is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); SCXML model = SCXMLParser.parse(new InputSource(is), null, customActionsFromTagExtensions(tagExtensionList)); SCXMLFrontier frontier = new SCXMLFrontier(p, model, tagExtensionList); Queue<Map<String, String>> queue = new LinkedList<>(); AtomicBoolean flag = new AtomicBoolean(true); frontier.searchForScenarios(new QueueResultsProcessing(queue), flag); Assert.assertEquals(queue.isEmpty(), true); } catch (IOException | SAXException ex) { Assert.fail(); } } catch (ModelException ex) { Assert.fail(); } }