// SEAM can expect that when a wait state is entered, the main
// path of execution is positioned in a page. That page
// contains the url that SEAM should render.
// In this simple page flow process, we always start with the
// review page.
Page page = (Page) pageFlowToken.getNode();
assertNotNull(page);
assertEquals("review", page.getName());
assertEquals("review.jsp", page.getUrl());
// so now, the SEAM page flow renders the review page.
// in review.jsp, the EL expression "taskInstance[document].text" should resolve
// to 'blablabla'
taskInstance = (TaskInstance) contextInstance.getVariable("taskInstance");
document = (Document) taskInstance.getVariable("document");
assertEquals("blablabla", document.getText());
assertEquals("business process review task", taskInstance.getName());
// suppose the user presses the approve button
pageFlowToken.signal("approve");
// now the page flow process should have moved to the
// approved page with the approved.jsp
page = (Page) pageFlowToken.getNode();
assertNotNull(page);
assertEquals("approved", page.getName());
assertEquals("approved.jsp", page.getUrl());
// ...and, the business process task instance should have ended.
assertTrue(taskInstance.hasEnded());
// causing the business process to move to the next state
assertEquals("file horizontally", businessToken.getNode().getName());