String id = new NonFacesRequest("/numberGuess.jspx")
{
@Override
protected void renderResponse() throws Exception {
NumberGuess ng = (NumberGuess) getInstance(NumberGuess.class);
assert ng.getMaxGuesses()==10;
assert ng.getBiggest()==100;
assert ng.getSmallest()==1;
assert ng.getCurrentGuess()==null;
assert ng.getGuessCount()==0;
assert Manager.instance().isLongRunningConversation();
}
}.run();
for (int i=1; i<=9; i++)
{
final int count = i;
new FacesRequest("/numberGuess.jspx", id)
{
@Override
protected void applyRequestValues() throws Exception {
NumberGuess ng = (NumberGuess) getInstance(NumberGuess.class);
guess = ng.getRandomNumber() > 50 ? 25+count : 75-count;
ng.setCurrentGuess(guess);
}
@Override
protected void invokeApplication() throws Exception {
setOutcome("guess");
//ng.guess();
//assert Pageflow.instance().getProcessInstance().getRootToken()
// .getNode().getName().equals("displayGuess");
}
@Override
protected void afterRequest()
{
assert !isRenderResponseBegun();
assert getViewId().equals("/numberGuess.jspx");
}
}.run();
new NonFacesRequest("/numberGuess.jspx", id)
{
@Override
protected void renderResponse() throws Exception {
NumberGuess ng = (NumberGuess) getInstance(NumberGuess.class);
assert ng.getMaxGuesses()==10;
assert ( guess > ng.getRandomNumber() && ng.getBiggest()==guess-1 )
|| ( guess < ng.getRandomNumber() && ng.getSmallest()==guess+1 );
assert !ng.isCorrectGuess();
assert !ng.isLastGuess();
assert ng.getCurrentGuess()==guess;
assert ng.getGuessCount()==count;
assert ng.getRemainingGuesses()==10-count;
assert Manager.instance().isLongRunningConversation();
assert Pageflow.instance().getProcessInstance().getRootToken()
.getNode().getName().equals("displayGuess");
}
}.run();
}
new FacesRequest("/numberGuess.jspx", id)
{
@Override
protected void applyRequestValues() throws Exception {
NumberGuess ng = (NumberGuess) getInstance(NumberGuess.class);
guess = ng.getRandomNumber() > 50 ? 49 : 51;
ng.setCurrentGuess(guess);
}
@Override
protected void invokeApplication() throws Exception {
setOutcome("guess");
//ng.guess();
assert Pageflow.instance().getProcessInstance().getRootToken()
.getNode().getName().equals("displayGuess");
}
@Override
protected void afterRequest()
{
assert !isRenderResponseBegun();
assert getViewId().equals("/lose.jspx");
}
}.run();
new NonFacesRequest("/lose.jspx", id)
{
@Override
protected void renderResponse() throws Exception {
NumberGuess ng = (NumberGuess) getInstance(NumberGuess.class);
assert ng.getMaxGuesses()==10;
assert ( guess > ng.getRandomNumber() && ng.getBiggest()==guess-1 )
|| ( guess < ng.getRandomNumber() && ng.getSmallest()==guess+1 );
assert !ng.isCorrectGuess();
assert ng.isLastGuess();
assert ng.getCurrentGuess()==guess;
assert ng.getGuessCount()==10;
assert ng.getRemainingGuesses()==0;
assert !Manager.instance().isLongRunningConversation();
assert Pageflow.instance().getProcessInstance().getRootToken()
.getNode().getName().equals("lose");
}