[jboss-cvs] jboss-seam/examples/drools/src/org/jboss/seam/example/numberguess/test ...

Peter Muir peter at bleepbleep.org.uk
Sun Oct 7 18:27:57 EDT 2007


  User: pmuir   
  Date: 07/10/07 18:27:57

  Added:       examples/drools/src/org/jboss/seam/example/numberguess/test  
                        testng.xml DroolsNumberGuessTest.java
  Log:
  JBSEAM-2059
  
  Revision  Changes    Path
  1.1      date: 2007/10/07 22:27:57;  author: pmuir;  state: Exp;jboss-seam/examples/drools/src/org/jboss/seam/example/numberguess/test/testng.xml
  
  Index: testng.xml
  ===================================================================
  <!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
  
  <suite name="Drools" verbose="2" parallel="false">
  
     <test name="Drools ">
       <classes>
         <class name="org.jboss.seam.example.numberguess.test.DroolsNumberGuessTest"/>
       </classes>
     </test>
  	
  </suite>
  
  
  1.1      date: 2007/10/07 22:27:57;  author: pmuir;  state: Exp;jboss-seam/examples/drools/src/org/jboss/seam/example/numberguess/test/DroolsNumberGuessTest.java
  
  Index: DroolsNumberGuessTest.java
  ===================================================================
  //$Id: DroolsNumberGuessTest.java,v 1.1 2007/10/07 22:27:57 pmuir Exp $
  package org.jboss.seam.example.numberguess.test;
  
  import org.jboss.seam.core.Manager;
  import org.jboss.seam.pageflow.Pageflow;
  import org.jboss.seam.example.numberguess.Game;
  import org.jboss.seam.example.numberguess.Guess;
  import org.jboss.seam.example.numberguess.RandomNumber;
  import org.jboss.seam.mock.SeamTest;
  import org.testng.annotations.Test;
  
  public class DroolsNumberGuessTest extends SeamTest
  {
     
     private int guessedValue;
     
     @Test
     public void testNumberGuessWin() throws Exception
     {
        String id = new NonFacesRequest("/numberGuess.jsp")
        {
  
           @Override
           protected void renderResponse() throws Exception {
              Game game = (Game) getInstance(Game.class);
              Guess guess = (Guess) getInstance(Guess.class);
              assert game.getBiggest()==100;
              assert game.getSmallest()==1;
              assert guess.getValue()==null;
              assert game.getGuessCount()==0;
              assert Manager.instance().isLongRunningConversation();
              assert Pageflow.instance().getProcessInstance().getRootToken()
              .getNode().getName().equals("displayGuess");
           }
           
        }.run();
  
        String id2 = new FacesRequest("/numberGuess.jsp", id)
        {
  
           @Override
           protected void applyRequestValues() throws Exception {
              Guess guess = (Guess) getInstance(Guess.class); 
              guessedValue = getRandomNumber() > 50 ? 25 : 75;
              guess.setValue(guessedValue);
           }
  
           @Override
           protected void invokeApplication() throws Exception {
              setOutcome("guess");
              //ng.guess();
           }
           
           @Override
           protected void afterRequest() {
              assert !isRenderResponseBegun();
              assert getViewId().equals("/numberGuess.jsp");
           }
           
        }.run();
        
        assert id2.equals(id);
        
        new NonFacesRequest("/numberGuess.jsp", id)
        {
           
           @Override
           protected void renderResponse() throws Exception {
              Game game = (Game) getInstance(Game.class);
              Guess guess = (Guess) getInstance(Guess.class);
              assert ( guessedValue > getRandomNumber() && game.getBiggest()==guessedValue-1 ) 
                    || ( guessedValue < getRandomNumber() && game.getSmallest()==guessedValue+1 );
              assert guess.getValue().equals(guessedValue);
              assert game.getGuessCount()==1;
              assert Manager.instance().isLongRunningConversation();
              assert Pageflow.instance().getProcessInstance().getRootToken()
                    .getNode().getName().equals("displayGuess");
           }
           
        }.run();
  
        id2 = new FacesRequest("/numberGuess.jsp", id)
        {
  
           @Override
           protected void applyRequestValues() throws Exception {
              Guess guess = (Guess) getInstance(Guess.class);
              guessedValue = getRandomNumber();
              guess.setValue(guessedValue);
           }
  
           @Override
           protected void invokeApplication() throws Exception {
               Guess guess = (Guess) getInstance(Guess.class);
              setOutcome("guess");
              assert guess.getValue().equals(getRandomNumber());
              assert Pageflow.instance().getProcessInstance().getRootToken()
              .getNode().getName().equals("displayGuess");
              //ng.guess();
           }
           
           @Override
           protected void afterRequest()
           {
              assert !isRenderResponseBegun();
              assert getViewId().equals("/win.jsp");
           }
           
        }.run();
        
        assert id2.equals(id);
        
        new NonFacesRequest("/win.jsp", id)
        {
           @Override
           protected void renderResponse() throws Exception {
              Game game = (Game) getInstance(Game.class);
              Guess guess = (Guess) getInstance(Guess.class);
              assert guess.getValue().equals(getRandomNumber());
              assert game.getGuessCount()==2;
              assert !Manager.instance().isLongRunningConversation();
              assert Pageflow.instance().getProcessInstance().getRootToken()
                    .getNode().getName().equals("win");
           }
           
        }.run();
  
     }
     
     @Test
     public void testNumberGuessLose() throws Exception
     {
        String id = new NonFacesRequest("/numberGuess.jsp")
        {
  
           @Override
           protected void renderResponse() throws Exception {
              Game game = (Game) getInstance(Game.class);
              Guess guess = (Guess) getInstance(Guess.class);
              assert game.getBiggest()==100;
              assert game.getSmallest()==1;
              assert guess.getValue()==null;
              assert game.getGuessCount()==0;
              assert Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
        for (int i=1; i<=9; i++)
        {
           
           final int count = i;
  
           new FacesRequest("/numberGuess.jsp", id)
           {
     
              @Override
              protected void applyRequestValues() throws Exception {
                 Guess guess = (Guess) getInstance(Guess.class);
                 guessedValue = getRandomNumber() > 50 ? 25+count : 75-count;
                 guess.setValue(guessedValue);
              }
     
              @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.jsp");
              }
              
           }.run();
           
           new NonFacesRequest("/numberGuess.jsp", id)
           {
     
              @Override
              protected void renderResponse() throws Exception {
                 Game game = (Game) getInstance(Game.class);
                 Guess guess = (Guess) getInstance(Guess.class);
                 assert ( guessedValue > getRandomNumber() && game.getBiggest()==guessedValue-1 ) 
                       || ( guessedValue < getRandomNumber() && game.getSmallest()==guessedValue+1 );
                 assert guess.getValue().equals(guessedValue);
                 assert game.getGuessCount()==count;
                 assert Manager.instance().isLongRunningConversation();
                 assert Pageflow.instance().getProcessInstance().getRootToken()
                       .getNode().getName().equals("displayGuess");
              }
              
           }.run();
        
        }
  
        new FacesRequest("/numberGuess.jsp", id)
        {
  
           @Override
           protected void applyRequestValues() throws Exception {
              Guess guess = (Guess) getInstance(Guess.class);
              guessedValue = getRandomNumber() > 50 ? 49 : 51;
              guess.setValue(guessedValue);
           }
  
           @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.jsp");
           }
           
        }.run();
  
        new NonFacesRequest("/lose.jsp", id)
        {
  
           @Override
           protected void renderResponse() throws Exception {
              Guess guess = (Guess) getInstance(Guess.class);
              Game game = (Game) getInstance(Game.class);
              assert ( guessedValue > getRandomNumber() && game.getBiggest()==guessedValue-1 ) 
                    || ( guessedValue < getRandomNumber() && game.getSmallest()==guessedValue+1 );
              assert guess.getValue().equals(guessedValue);
              assert game.getGuessCount()==10;
              assert !Manager.instance().isLongRunningConversation();
              assert Pageflow.instance().getProcessInstance().getRootToken()
                    .getNode().getName().equals("lose");
           }
           
        }.run();
  
     }
     
     private Integer getRandomNumber()
     {
         return (Integer) getInstance(RandomNumber.class);
     }
     
  }
  
  
  



More information about the jboss-cvs-commits mailing list