aslak

Test case for testing how packaging affects injection

Jun 11th, 2010
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 1.90 KB | None | 0 0
  1. @RunWith(Arquillian.class)
  2. public class HotelSearchTestCase
  3. {
  4.    @Deployment
  5.    public static Archive<?> createTestArchive() {
  6.       // JavaArchive doesn't work
  7. //      JavaArchive jar = ShrinkWrap.create("test.jar", JavaArchive.class)
  8. //            .addPackage(HotelSearch.class.getPackage())
  9. //            .addPackage(Hotel.class.getPackage())
  10. //            .addManifestResource("META-INF/persistence.xml", "persistence.xml")
  11. //            .addManifestResource(new ByteArrayAsset(new byte[0]), "beans.xml");
  12. //      return jar;
  13.       // WebArchive does work
  14.       WebArchive war = ShrinkWrap.create("test.war", WebArchive.class)
  15.          .addPackage(HotelSearch.class.getPackage())
  16.          .addPackage(Hotel.class.getPackage())
  17.          .addWebResource("META-INF/persistence.xml", "classes/META-INF/persistence.xml")
  18.          .addWebResource(new ByteArrayAsset(new byte[0]), "beans.xml");
  19.       return war;
  20.    }
  21.  
  22.    @Inject UserTransaction utx;
  23.    @PersistenceContext EntityManager em;
  24.    @Inject SearchCriteria criteria;
  25.    @Inject HotelSearch hotelSearch;
  26.    @Inject Instance<List<Hotel>> hotelsInstance;
  27.  
  28.    public void prepareSeedData() throws Exception
  29.    {
  30.       utx.begin();
  31.       em.joinTransaction();
  32.       em.createQuery("delete from Hotel").executeUpdate();
  33.       em.persist(new Hotel("Doubletree Atlanta-Buckhead", "3342 Peachtree Road NE", "Atlanta", "GA", "30326", "USA"));
  34.       utx.commit();
  35.    }
  36.  
  37.    @Test
  38.    public void testSearch() throws Exception
  39.    {
  40.       prepareSeedData();
  41.  
  42.       criteria.setQuery("atlanta");
  43.       hotelSearch.find();
  44.       List<Hotel> hotels = hotelsInstance.get();
  45.       Assert.assertEquals(1, hotels.size());
  46.       Assert.assertEquals(hotels.get(0).getName(), "Doubletree Atlanta-Buckhead");
  47.  
  48.       criteria.setQuery("boston");
  49.       hotelSearch.find();
  50.       hotels = hotelsInstance.get();
  51.       Assert.assertEquals(0, hotels.size());
  52.    }
  53.  
  54. }
Add Comment
Please, Sign In to add comment