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

Michael Youngstrom youngm at gmail.com
Mon Aug 20 17:30:28 EDT 2007


  User: myoungstrom
  Date: 07/08/20 17:30:28

  Modified:    examples/spring/src/org/jboss/seam/example/spring/test 
                        StartupTest.java
  Log:
  added an integration test.  Will take some more work to get it running with ant.
  
  Revision  Changes    Path
  1.2       +196 -9    jboss-seam/examples/spring/src/org/jboss/seam/example/spring/test/StartupTest.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: StartupTest.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/spring/src/org/jboss/seam/example/spring/test/StartupTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- StartupTest.java	12 Mar 2007 20:37:06 -0000	1.1
  +++ StartupTest.java	20 Aug 2007 21:30:28 -0000	1.2
  @@ -1,16 +1,203 @@
  -//$Id: StartupTest.java,v 1.1 2007/03/12 20:37:06 myoungstrom Exp $
  +//$Id: StartupTest.java,v 1.2 2007/08/20 21:30:28 myoungstrom Exp $
   package org.jboss.seam.example.spring.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.spring.Booking;
  +import org.jboss.seam.example.spring.HibernateTestService;
  +import org.jboss.seam.example.spring.Hotel;
  +import org.jboss.seam.example.spring.HotelBookingAction;
  +import org.jboss.seam.example.spring.User;
   import org.jboss.seam.mock.SeamTest;
  +import org.jboss.seam.mock.SeamTest.FacesRequest;
  +import org.jboss.seam.mock.SeamTest.NonFacesRequest;
   import org.testng.annotations.Test;
   
  -public class StartupTest extends SeamTest
  -{
  +public class StartupTest extends SeamTest {
      
      @Test
  -   public void testLogin() throws Exception
  -   {
  +	public void testRegister() throws Exception {
  +		new FacesRequest("/register.xhtml") {
  +			/**
  +			 * @see org.jboss.seam.mock.BaseSeamTest.Request#updateModelValues()
  +			 */
  +			@Override
  +			protected void updateModelValues() throws Exception {
  +				setValue("#{user.username}", "testUser");
  +				setValue("#{user.name}", "Test User's Name");
  +				setValue("#{user.password}", "password");
  +				setValue("#{register.verify}", "password");
  +			}
  +			/**
  +			 * @see org.jboss.seam.mock.BaseSeamTest.Request#invokeApplication()
  +			 */
  +			@Override
  +			protected void invokeApplication() throws Exception {
  +				invokeAction("#{register.register}");
  +			}
  +		}.run();
  +	}
  +	
  +	@Test(dependsOnMethods="testRegister")
  +	public void testBooking() throws Exception {
  +		new FacesRequest() {
  +
  +			@Override
  +			protected void invokeApplication() throws Exception {
  +				Contexts.getSessionContext().set("user", new User("Gavin King", "foobar", "gavin"));
  +				setValue("#{identity.username}", "gavin");
  +				setValue("#{identity.password}", "foobar");
  +				invokeAction("#{identity.login}");
  +			}
  +
  +		}.run();
         
  +		new FacesRequest("/main.xhtml") {
  +
  +			@Override
  +			protected void invokeApplication() {
  +				assert invokeAction("#{hotelSearch.find}") == null;
      }
   
  +			@Override
  +			protected void renderResponse() {
  +				DataModel hotels = (DataModel) getValue("#{hotels}");
  +				hotels.setRowIndex(0);
  +				assert ((Hotel) hotels.getRowData()).getName().equals(HibernateTestService.HIBERNATE_HOTEL_NAME);
  +			}
  +
  +		}.run();
  +
  +		String id = new FacesRequest("/main.xhtml") {
  +
  +			@Override
  +			protected void invokeApplication() throws Exception {
  +				HotelBookingAction hotelBooking = (HotelBookingAction) getInstance("hotelBooking");
  +				DataModel hotels = (DataModel) Contexts.getSessionContext().get("hotels");
  +				hotels.setRowIndex(0);
  +				hotelBooking.selectHotel((Hotel) hotels.getRowData());
  +			}
  +
  +		}.run();
  +
  +		id = new FacesRequest("/hotel.xhtml", id) {
  +
  +			@Override
  +			protected void invokeApplication() {
  +				invokeAction("#{hotelBooking.bookHotel}");
  +			}
  +
  +			@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
  +			@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 invokeAction("#{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();
  +			}
  +
  +			@Override
  +			protected void afterRequest() {
  +				assert isInvokeApplicationComplete();
  +			}
  +
  +		}.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() {
  +				invokeAction("#{hotelBooking.setBookingDetails}");
  +			}
  +
  +			@Override
  +			protected void renderResponse() {
  +				assert Manager.instance().isLongRunningConversation();
  +			}
  +
  +			@Override
  +			protected void afterRequest() {
  +				assert isInvokeApplicationComplete();
  +			}
  +
  +		}.run();
  +
  +		new FacesRequest("/confirm.xhtml", id) {
  +
  +			@Override
  +			protected void invokeApplication() {
  +				invokeAction("#{hotelBooking.confirm}");
  +			}
  +
  +			@Override
  +			protected void afterRequest() {
  +				assert isInvokeApplicationComplete();
  +			}
  +
  +		}.run();
  +
  +		new NonFacesRequest("/main.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().getName().equals(HibernateTestService.HIBERNATE_HOTEL_NAME);
  +				assert booking.getUser().getUsername().equals("gavin");
  +			}
  +
  +		}.run();
  +	}
   }
  
  
  



More information about the jboss-cvs-commits mailing list