[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