diff --git a/booking/pom.xml b/booking/pom.xml index e70c709..657144d 100644 --- a/booking/pom.xml +++ b/booking/pom.xml @@ -34,7 +34,7 @@ src/main/webapp ${env.JBOSS_HOME} default - 1.0.0.Alpha3 + 1.0.0.Alpha5 3.1 1.1.1.Final 6.0.0.Final @@ -142,6 +142,12 @@ ${arquillian.version} test + + + org.jboss.weld + weld-core + test + org.jboss.spec diff --git a/booking/src/test/java/org/jboss/seam/examples/booking/booking/BookingAgentTest.java b/booking/src/test/java/org/jboss/seam/examples/booking/booking/BookingAgentTest.java index 00b045b..05e7c61 100644 --- a/booking/src/test/java/org/jboss/seam/examples/booking/booking/BookingAgentTest.java +++ b/booking/src/test/java/org/jboss/seam/examples/booking/booking/BookingAgentTest.java @@ -16,7 +16,6 @@ */ package org.jboss.seam.examples.booking.booking; -import java.io.Serializable; import java.util.HashMap; import java.util.Map; @@ -31,16 +30,21 @@ import org.jboss.arquillian.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.seam.examples.booking.account.Authenticated; +import org.jboss.seam.examples.booking.i18n.DefaultBundleKey; +import org.jboss.seam.examples.booking.log.BookingLog; import org.jboss.seam.examples.booking.model.Booking; import org.jboss.seam.examples.booking.model.CreditCardType; import org.jboss.seam.examples.booking.model.Hotel; import org.jboss.seam.examples.booking.model.User; import org.jboss.seam.examples.booking.support.MavenArtifactResolver; import org.jboss.seam.examples.booking.support.NoOpLogger; -import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.asset.StringAsset; +import org.jboss.shrinkwrap.api.asset.EmptyAsset; import org.jboss.shrinkwrap.api.spec.WebArchive; +import org.jboss.weld.Container; +import org.jboss.weld.context.bound.BoundConversationContext; +import org.jboss.weld.context.bound.BoundRequest; +import org.jboss.weld.context.bound.MutableBoundRequest; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -48,17 +52,17 @@ @RunWith(Arquillian.class) public class BookingAgentTest { @Deployment - public static Archive createTestArchive() { - WebArchive war = ShrinkWrap + public static WebArchive createDeployment() { + return ShrinkWrap .create(WebArchive.class, "test.war") .addPackage(Hotel.class.getPackage()) - .addClasses(BookingAgent.class, BookingAgent.class, Confirmed.class, Authenticated.class, NoOpLogger.class) - .addLibraries(MavenArtifactResolver.resolve("joda-time:joda-time:1.6"), - MavenArtifactResolver.resolve("org.jboss.seam.international:seam-international-api:3.0.0.Alpha1"), - MavenArtifactResolver.resolve("org.jboss.seam.international:seam-international:3.0.0.Alpha1")) - .addWebResource("test-persistence.xml", "classes/META-INF/persistence.xml") - .addWebResource(new StringAsset(""), "beans.xml"); - return war; + .addClasses(BookingAgent.class, BookingAgent.class, Confirmed.class, Authenticated.class, NoOpLogger.class, DefaultBundleKey.class) + .addPackage(BookingLog.class.getPackage()) + .addAsLibraries( + MavenArtifactResolver.resolve("org.jboss.seam.solder:seam-solder:3.0.0.CR4"), + MavenArtifactResolver.resolve("org.jboss.seam.international:seam-international:3.0.0.CR4")) + .addAsWebInfResource("test-persistence.xml", "classes/META-INF/persistence.xml") + .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"); } @Inject @@ -91,24 +95,32 @@ public void prepareSeedData() throws Exception { public void testBookHotel() throws Exception { prepareSeedData(); - // we have to depend on the Weld API to setup the conversation scope - /* - * TODO uncomment here ConversationContext cc = new ConversationContext(); cc.setBeanStore(new HashMapBeanStore()); - * cc.setActive(true); ((BeanManagerImpl) beanManager).addContext(cc); - */ + BoundConversationContext ctx = null; + BoundRequest storage = new MutableBoundRequest(new HashMap(), new HashMap()); + try { + ctx = Container.instance().deploymentManager().instance().select(BoundConversationContext.class).get(); + ctx.associate(storage); + ctx.activate(); - bookingAgent.selectHotel(1l); - bookingAgent.bookHotel(); - Booking booking = bookingInstance.get(); - booking.setCreditCardNumber("1111222233334444"); - booking.setCreditCardExpiryMonth(1); - booking.setCreditCardExpiryYear(2012); - booking.setCreditCardType(CreditCardType.VISA); - booking.setBeds(1); - booking.setSmoking(false); - bookingAgent.confirm(); - - Assert.assertEquals(1, em.createQuery("select b from Booking b").getResultList().size()); + bookingAgent.selectHotel(1l); + bookingAgent.bookHotel(); + Booking booking = bookingInstance.get(); + booking.setCreditCardNumber("1111222233334444"); + booking.setCreditCardExpiryMonth(1); + booking.setCreditCardExpiryYear(2012); + booking.setCreditCardType(CreditCardType.VISA); + booking.setBeds(1); + booking.setSmoking(false); + bookingAgent.confirm(); + + Assert.assertEquals(1, em.createQuery("select b from Booking b").getResultList().size()); + } + finally { + if (ctx != null && ctx.isActive()) { + ctx.dissociate(storage); + ctx.deactivate(); + } + } } @Produces @@ -116,13 +128,4 @@ public void testBookHotel() throws Exception { User getRegisteredUser() { return em.find(User.class, "ike"); } - /* - * TODO uncomment here public static class HashMapBeanStore extends AbstractMapBackedBeanStore implements Serializable { - * - * protected Map> delegate; - * - * public HashMapBeanStore() { delegate = new HashMap>(); } - * - * @Override protected Map> delegate() { return delegate; } } - */ } diff --git a/booking/src/test/java/org/jboss/seam/examples/booking/inventory/HotelSearchTest.java b/booking/src/test/java/org/jboss/seam/examples/booking/inventory/HotelSearchTest.java index 2742753..9d2f98f 100644 --- a/booking/src/test/java/org/jboss/seam/examples/booking/inventory/HotelSearchTest.java +++ b/booking/src/test/java/org/jboss/seam/examples/booking/inventory/HotelSearchTest.java @@ -54,11 +54,11 @@ public static Archive createTestArchive() { .addPackage(HotelSearch.class.getPackage()) .addPackage(Hotel.class.getPackage()) .addClasses(NoOpLogger.class) - .addLibraries(MavenArtifactResolver.resolve("joda-time:joda-time:1.6"), + .addAsLibraries(MavenArtifactResolver.resolve("joda-time:joda-time:1.6"), MavenArtifactResolver.resolve("org.jboss.seam.international:seam-international-api:3.0.0.Alpha1"), MavenArtifactResolver.resolve("org.jboss.seam.international:seam-international:3.0.0.Alpha1")) - .addWebResource("test-persistence.xml", "classes/META-INF/persistence.xml") - .addWebResource(new StringAsset(""), "beans.xml"); + .addAsWebInfResource("test-persistence.xml", "classes/META-INF/persistence.xml") + .addAsWebInfResource(new StringAsset(""), "beans.xml"); return war; }