Skip to content

Commit

Permalink
SEAM-50 fix to BookingAgentTest
Browse files Browse the repository at this point in the history
- upgrade to Arquillian 1.0.0.Alpha5
- add weld core to test scope for conversation control
- fix test
  • Loading branch information
mojavelinux committed Mar 25, 2011
1 parent 6ff8ac1 commit 24017c4
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 42 deletions.
8 changes: 7 additions & 1 deletion booking/pom.xml
Expand Up @@ -34,7 +34,7 @@
<webapp.directory>src/main/webapp</webapp.directory>
<jboss.home>${env.JBOSS_HOME}</jboss.home>
<jboss.domain>default</jboss.domain>
<arquillian.version>1.0.0.Alpha3</arquillian.version>
<arquillian.version>1.0.0.Alpha5</arquillian.version>
<glassfish.version>3.1</glassfish.version>
<jpamodelgen.version>1.1.1.Final</jpamodelgen.version>
<jboss-as-client.version>6.0.0.Final</jboss-as-client.version>
Expand Down Expand Up @@ -142,6 +142,12 @@
<version>${arquillian.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.jboss.weld</groupId>
<artifactId>weld-core</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.jboss.spec</groupId>
Expand Down
Expand Up @@ -16,7 +16,6 @@
*/
package org.jboss.seam.examples.booking.booking;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

Expand All @@ -31,34 +30,39 @@
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;

@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
Expand Down Expand Up @@ -91,38 +95,37 @@ 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<String, Object>(), new HashMap<String, Object>());
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
@Authenticated
User getRegisteredUser() {
return em.find(User.class, "ike");
}
/*
* TODO uncomment here public static class HashMapBeanStore extends AbstractMapBackedBeanStore implements Serializable {
*
* protected Map<String, ContextualInstance<? extends Object>> delegate;
*
* public HashMapBeanStore() { delegate = new HashMap<String, ContextualInstance<? extends Object>>(); }
*
* @Override protected Map<String, ContextualInstance<? extends Object>> delegate() { return delegate; } }
*/
}
Expand Up @@ -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;
}

Expand Down

0 comments on commit 24017c4

Please sign in to comment.