[jboss-cvs] jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/test ...

Gavin King gavin.king at jboss.com
Mon Nov 20 00:19:02 EST 2006


  User: gavin   
  Date: 06/11/20 00:19:02

  Added:       examples/icefaces/src/org/jboss/seam/example/booking/test     
                        BookingTest.java BookingUnitTest.java
                        ChangePasswordTest.java LoginTest.java testng.xml
  Log:
  add icefaces example to cvs, thanks to icesoft
  
  Revision  Changes    Path
  1.1      date: 2006/11/20 05:19:01;  author: gavin;  state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/test/BookingTest.java
  
  Index: BookingTest.java
  ===================================================================
  //$Id: BookingTest.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
  package org.jboss.seam.example.booking.test;
  
  import java.util.Calendar;
  import java.util.Date;
  import java.util.Iterator;
  
  import javax.faces.application.FacesMessage;
  import javax.faces.context.FacesContext;
  import javax.faces.model.DataModel;
  import javax.faces.model.ListDataModel;
  
  import org.jboss.seam.contexts.Contexts;
  import org.jboss.seam.core.Manager;
  import org.jboss.seam.example.booking.Booking;
  import org.jboss.seam.example.booking.Hotel;
  import org.jboss.seam.example.booking.HotelBooking;
  import org.jboss.seam.example.booking.User;
  import org.jboss.seam.mock.SeamTest;
  import org.testng.annotations.Test;
  
  public class BookingTest extends SeamTest
  {
     
     @Test
     public void testBookHotel() throws Exception
     {
        
        new FacesRequest()
        {
           @Override
           protected void invokeApplication() throws Exception
           {
              Contexts.getSessionContext().set("loggedIn", true);
              Contexts.getSessionContext().set("user", new User("Gavin King", "foobar", "gavin"));
           }
           
        }.run();
        
        new FacesRequest("/main.xhtml") {
  
           @Override
           protected void updateModelValues() throws Exception
           {
              setValue("#{hotelSearch.searchString}", "Union Square");
           }
  
           @Override
           protected void invokeApplication()
           {
              assert invokeMethod("#{hotelSearch.find}").equals("main");
           }
  
           @Override
           protected void renderResponse()
           {
              DataModel hotels = (DataModel) Contexts.getSessionContext().get("hotels");
              assert hotels.getRowCount()==1;
              assert ( (Hotel) hotels.getRowData() ).getCity().equals("NY");
              assert getValue("#{hotelSearch.searchString}").equals("Union Square");
              assert !Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
        String id = new NonFacesRequest("/hotel.xhtml") {
  
           @Override
           protected void renderResponse()
           {
              HotelBooking hotelBooking = (HotelBooking) getInstance("hotelBooking");
              DataModel hotels = (DataModel) Contexts.getSessionContext().get("hotels");
              assert hotels.getRowCount()==1;
              String outcome = hotelBooking.selectHotel( (Hotel) hotels.getRowData() );
              assert "hotel".equals(outcome);
              Hotel hotel = (Hotel) Contexts.getConversationContext().get("hotel");
              assert hotel.getCity().equals("NY");
              assert hotel.getZip().equals("10011");
              assert Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
        id = new FacesRequest("/hotel.xhtml", id) {
  
           @Override
           protected void invokeApplication()
           {
              assert invokeMethod("#{hotelBooking.bookHotel}").equals("book");
           }
  
           @Override
           protected void renderResponse()
           {
              assert getValue("#{booking.user}")!=null;
              assert getValue("#{booking.hotel}")!=null;
              assert getValue("#{booking.creditCard}")==null;
              assert getValue("#{booking.creditCardName}")==null;
              Booking booking = (Booking) Contexts.getConversationContext().get("booking");
              assert booking.getHotel()==Contexts.getConversationContext().get("hotel");
              assert booking.getUser()==Contexts.getSessionContext().get("user");
              assert Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
        new FacesRequest("/book.xhtml", id) {
  
           @Override
           protected void processValidations() throws Exception
           {
              validateValue("#{booking.creditCard}", "123");
              assert isValidationFailure();
           }
  
           @Override
           protected void renderResponse()
           {
              Iterator messages = FacesContext.getCurrentInstance().getMessages();
              assert messages.hasNext();
              assert ( (FacesMessage) messages.next() ).getSummary().equals("Credit card number must 16 digits long");
              assert !messages.hasNext();
              assert Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
        new FacesRequest("/book.xhtml", id) {
  
           @Override
           protected void processValidations() throws Exception
           {
              validateValue("#{booking.creditCardName}", "");
              assert isValidationFailure();
           }
  
           @Override
           protected void renderResponse()
           {
              Iterator messages = FacesContext.getCurrentInstance().getMessages();
              assert messages.hasNext();
              assert ( (FacesMessage) messages.next() ).getSummary().equals("Credit card name is required");
              assert !messages.hasNext();
              assert Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
        new FacesRequest("/book.xhtml", id) {
           
           @Override @SuppressWarnings("deprecation")
           protected void updateModelValues() throws Exception
           {  
              setValue("#{booking.creditCard}", "1234567891021234");
              setValue("#{booking.creditCardName}", "GAVIN KING");
              setValue("#{booking.beds}", 2);
              Date now = new Date();
              setValue("#{booking.checkinDate}", now);
              setValue("#{booking.checkoutDate}", now);
           }
  
           @Override
           protected void invokeApplication()
           {
              assert invokeMethod("#{hotelBooking.setBookingDetails}")==null;
           }
  
           @Override
           protected void renderResponse()
           {
              Iterator messages = FacesContext.getCurrentInstance().getMessages();
              assert messages.hasNext();
              FacesMessage message = (FacesMessage) messages.next();
              assert message.getSummary().equals("Check out date must be later than check in date");
              assert !messages.hasNext();
              assert Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
        new FacesRequest("/book.xhtml", id) {
           
           @Override @SuppressWarnings("deprecation")
           protected void updateModelValues() throws Exception
           {
              Calendar cal = Calendar.getInstance();
              cal.add(Calendar.DAY_OF_MONTH, 2);
              setValue("#{booking.checkoutDate}", cal.getTime() );
           }
  
           @Override
           protected void invokeApplication()
           {
              assert invokeMethod("#{hotelBooking.setBookingDetails}").equals("confirm");
           }
  
           @Override
           protected void renderResponse()
           {
              assert Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
        new FacesRequest("/confirm.xhtml", id) {
  
           @Override
           protected void invokeApplication()
           {
              assert invokeMethod("#{hotelBooking.confirm}").equals("confirmed");
           }
  
           @Override
           protected void renderResponse()
           {
              assert !Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
        new NonFacesRequest("/confirmed.xhtml") {
  
           @Override
           protected void renderResponse()
           {
              ListDataModel bookings = (ListDataModel) getInstance("bookings");
              assert bookings.getRowCount()==1;
              bookings.setRowIndex(0);
              Booking booking = (Booking) bookings.getRowData();
              assert booking.getHotel().getCity().equals("NY");
              assert booking.getUser().getUsername().equals("gavin");
              assert !Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
        new FacesRequest("/main.xhtml") {
           
           @Override
           protected void invokeApplication()
           {
              ListDataModel bookings = (ListDataModel) Contexts.getSessionContext().get("bookings");
              bookings.setRowIndex(0);
              assert invokeMethod("#{bookingList.cancel}").equals("main");
           }
  
           @Override
           protected void renderResponse()
           {
              ListDataModel bookings = (ListDataModel) Contexts.getSessionContext().get("bookings");
              assert bookings.getRowCount()==0;
              assert !Manager.instance().isLongRunningConversation();
           }
           
        }.run();
        
     }
     
  }
  
  
  
  1.1      date: 2006/11/20 05:19:01;  author: gavin;  state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/test/BookingUnitTest.java
  
  Index: BookingUnitTest.java
  ===================================================================
  package org.jboss.seam.example.booking.test;
  
  import java.util.List;
  
  import javax.persistence.EntityManager;
  import javax.persistence.EntityManagerFactory;
  import javax.persistence.Persistence;
  
  import org.jboss.seam.core.Events;
  import org.jboss.seam.core.FacesMessages;
  import org.jboss.seam.example.booking.Booking;
  import org.jboss.seam.example.booking.Hotel;
  import org.jboss.seam.example.booking.HotelBooking;
  import org.jboss.seam.example.booking.HotelBookingAction;
  import org.jboss.seam.example.booking.HotelSearching;
  import org.jboss.seam.example.booking.HotelSearchingAction;
  import org.jboss.seam.example.booking.User;
  import org.jboss.seam.log.LogImpl;
  import org.jboss.seam.mock.SeamTest;
  import org.testng.annotations.Test;
  
  public class BookingUnitTest extends SeamTest
  {
     
     @Test
     public void testHotelSearching() throws Exception
     {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("bookingDatabase");
  
        EntityManager em = emf.createEntityManager();
        
        HotelSearching hs = new HotelSearchingAction();
        
        setField(hs, "em", em);
        
        hs.setSearchString("atlanta");
        hs.find();
        
        List<Hotel> hotels = (List<Hotel>) getField(hs, "hotels");
        assert hotels!=null;
        assert hotels.size()==3;
        
        em.close();
     }
     
     @Test
     public void testHotelBooking() throws Exception
     {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("bookingDatabase");
        final EntityManager em = emf.createEntityManager();
        
        Hotel hotel =  em.getReference(Hotel.class, 1l);
        
        HotelBooking hb = new HotelBookingAction();
        
        setField(hb, "em", em);
        //setField(hb, "hotelSearch", hs);
        setField(hb, "user", em.getReference(User.class, "gavin"));
        setField(hb, "facesMessages", new FacesMessages());
        setField(hb, "events", new Events() { @Override public void raiseEvent(String type, Object... params) { assert "bookingConfirmed".equals(type); } } );
        setField(hb, "log", new LogImpl(HotelBookingAction.class));
        
        assert hb.selectHotel(hotel).equals("hotel");
  
        User user = em.getReference(User.class, "gavin");
        assert user!=null;
        assert hb.bookHotel().equals("book");
        
        Booking booking = (Booking) getField(hb, "booking");
        assert booking!=null;
        assert booking.getHotel()!=null;
        assert booking.getUser()!=null;
        
        booking.setCreditCard("1234123412341234");
        booking.setCreditCardName("GAVIN A KING");
        
        assert hb.setBookingDetails().equals("confirm");
  
        getUserTransaction().begin();
        assert hb.confirm().equals("confirmed");
        getUserTransaction().commit();
        
        em.close();
     }
  
  }
  
  
  
  1.1      date: 2006/11/20 05:19:01;  author: gavin;  state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/test/ChangePasswordTest.java
  
  Index: ChangePasswordTest.java
  ===================================================================
  //$Id: ChangePasswordTest.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
  package org.jboss.seam.example.booking.test;
  
  import org.jboss.seam.contexts.Contexts;
  import org.jboss.seam.core.Manager;
  import org.jboss.seam.example.booking.User;
  import org.jboss.seam.mock.SeamTest;
  import org.testng.annotations.Test;
  
  public class ChangePasswordTest extends SeamTest
  {
     
     @Test
     public void testChangePassword() throws Exception
     {
        
        new FacesRequest() {
           
           @Override
           protected void invokeApplication() throws Exception
           {
              Contexts.getSessionContext().set("loggedIn", true);
              Contexts.getSessionContext().set("user", new User("Gavin King", "foobar", "gavin"));
           }
           
        }.run();
        
        new FacesRequest() {
           
           @Override
           protected void processValidations() throws Exception
           {
              validateValue("#{user.password}", "xxx");
              assert isValidationFailure();
           }
  
           @Override
           protected void renderResponse()
           {
              assert getValue("#{user.name}").equals("Gavin King");
              assert getValue("#{user.username}").equals("gavin");
              assert getValue("#{user.password}").equals("foobar");
              assert !Manager.instance().isLongRunningConversation();
              assert Contexts.getSessionContext().get("loggedIn").equals(true);
  
           }
           
        }.run();
        
        new FacesRequest() {
  
           @Override
           protected void updateModelValues() throws Exception
           {
              setValue("#{user.password}", "xxxyyy");
              setValue("#{changePassword.verify}", "xxyyyx");
           }
  
           @Override
           protected void invokeApplication()
           {
              assert invokeMethod("#{changePassword.changePassword}")==null;
           }
  
           @Override
           protected void renderResponse()
           {
              assert getValue("#{user.name}").equals("Gavin King");
              assert getValue("#{user.username}").equals("gavin");
              assert getValue("#{user.password}").equals("foobar");
              assert !Manager.instance().isLongRunningConversation();
              assert Contexts.getSessionContext().get("loggedIn").equals(true);
           }
           
        }.run();
        
        new FacesRequest() {
  
           @Override
           protected void updateModelValues() throws Exception
           {
              setValue("#{user.password}", "xxxyyy");
              setValue("#{changePassword.verify}", "xxxyyy");
           }
  
           @Override
           protected void invokeApplication()
           {
              assert invokeMethod("#{changePassword.changePassword}").equals("main");
           }
  
           @Override
           protected void renderResponse()
           {
              assert getValue("#{user.name}").equals("Gavin King");
              assert getValue("#{user.username}").equals("gavin");
              assert getValue("#{user.password}").equals("xxxyyy");
              assert !Manager.instance().isLongRunningConversation();
              assert Contexts.getSessionContext().get("loggedIn").equals(true);
  
           }
           
        }.run();
        
        new FacesRequest() {
  
           @Override
           protected void updateModelValues() throws Exception
           {
              assert getValue("#{user.password}").equals("xxxyyy");
              setValue("#{user.password}", "foobar");
              setValue("#{changePassword.verify}", "foobar");
           }
  
           @Override
           protected void invokeApplication()
           {
              assert invokeMethod("#{changePassword.changePassword}").equals("main");
           }
  
           @Override
           protected void renderResponse()
           {
              assert getValue("#{user.name}").equals("Gavin King");
              assert getValue("#{user.username}").equals("gavin");
              assert getValue("#{user.password}").equals("foobar");
              assert !Manager.instance().isLongRunningConversation();
              assert Contexts.getSessionContext().get("loggedIn").equals(true);
  
           }
           
        }.run();
        
     }
  
  }
  
  
  
  1.1      date: 2006/11/20 05:19:01;  author: gavin;  state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/test/LoginTest.java
  
  Index: LoginTest.java
  ===================================================================
  //$Id: LoginTest.java,v 1.1 2006/11/20 05:19:01 gavin Exp $
  package org.jboss.seam.example.booking.test;
  
  import org.jboss.seam.Seam;
  import org.jboss.seam.contexts.Contexts;
  import org.jboss.seam.core.Manager;
  import org.jboss.seam.mock.SeamTest;
  import org.testng.annotations.Test;
  
  public class LoginTest extends SeamTest
  {
     
     @Test
     public void testLogin() throws Exception
     {
        
        new FacesRequest() {
           
           @Override
           protected void invokeApplication()
           {
              assert !isSessionInvalid();
              assert invokeMethod("#{hotelSearch.find}").equals("login");
           }
  
           @Override
           protected void renderResponse()
           {
              assert !Manager.instance().isLongRunningConversation();
              assert Contexts.getSessionContext().get("loggedIn")==null;
  
           }
           
        }.run();
        
        new FacesRequest() {
  
           @Override
           protected void updateModelValues() throws Exception
           {
              assert !isSessionInvalid();
              setValue("#{user.username}", "gavin");
              setValue("#{user.password}", "foobar");
           }
  
           @Override
           protected void invokeApplication()
           {
              assert invokeMethod("#{login.login}").equals("main");
           }
  
           @Override
           protected void renderResponse()
           {
              assert getValue("#{user.name}").equals("Gavin King");
              assert getValue("#{user.username}").equals("gavin");
              assert getValue("#{user.password}").equals("foobar");
              assert !Manager.instance().isLongRunningConversation();
              assert Contexts.getSessionContext().get("loggedIn").equals(true);
  
           }
           
        }.run();
        
        new FacesRequest() {
  
           @Override
           protected void invokeApplication()
           {
              assert !isSessionInvalid();
              assert invokeMethod("#{hotelSearch.find}").equals("main");
           }
  
           @Override
           protected void renderResponse()
           {
              assert !Manager.instance().isLongRunningConversation();
              assert Contexts.getSessionContext().get("loggedIn").equals(true);
  
           }
           
        }.run();
        
        new FacesRequest() {
  
           @Override
           protected void invokeApplication()
           {
              assert !Manager.instance().isLongRunningConversation();
              assert !isSessionInvalid();
              assert invokeMethod("#{logout.logout}").equals("login");
              assert Seam.isSessionInvalid();
           }
  
           @Override
           protected void renderResponse()
           {
              assert Seam.isSessionInvalid();
           }
           
        }.run();
        
     }
  
  }
  
  
  
  1.1      date: 2006/11/20 05:19:01;  author: gavin;  state: Exp;jboss-seam/examples/icefaces/src/org/jboss/seam/example/booking/test/testng.xml
  
  Index: testng.xml
  ===================================================================
  <!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
  
  <suite name="Hotel Booking" verbose="2" parallel="false">
  
     <test name="Login">
       <classes>
         <class name="org.jboss.seam.example.booking.test.LoginTest"/>
       </classes>
     </test>
  	
     <test name="Booking">
       <classes>
         <class name="org.jboss.seam.example.booking.test.BookingTest"/>
       </classes>
     </test>
  	
     <test name="Change Password">
       <classes>
         <class name="org.jboss.seam.example.booking.test.ChangePasswordTest"/>
       </classes>
     </test>
  	
     <!--test name="Switch Conversation">
       <classes>
         <class name="org.jboss.seam.example.booking.test.SwitchConversationTest"/>
       </classes>
     </test-->
  	
     <test name="Booking Unit">
       <classes>
         <class name="org.jboss.seam.example.booking.test.BookingUnitTest"/>
       </classes>
     </test>
  	
  </suite>
  
  



More information about the jboss-cvs-commits mailing list