package com.softwaremill.common.dbtest; import org.hibernate.ejb.Ejb3Configuration; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.testng.Assert; import org.testng.annotations.Test; import javax.inject.Inject; import java.util.Arrays; /** * @author Adam Warski (adam at warski dot org) */ @Test(groups = "TestOfDbTest") public class TestOfDBTest extends AbstractDBTest { @Override public void configureEntities(Ejb3Configuration cfg) { cfg.addAnnotatedClass(TestEntity1.class); } @Deployment public static JavaArchive createTestArchive() { return new ArchiveConfigurator() { @Override protected JavaArchive configureBeans(JavaArchive ar) { return ar.addPackage(TestEntity1Manager.class.getPackage()); } }.createTestArchive(); } @Inject private TestEntity1Manager manager; @Test public void testRead() { Assert.assertEquals( manager.getCurrentData(), Arrays.asList(new TestEntity1(0l, "data1"), new TestEntity1(1l, "data2"))); } @Test(dependsOnMethods = "testRead") public void testWrite() { manager.addEntity(new TestEntity1(2l, "data3")); } @Test(dependsOnMethods = "testWrite") public void testReadAfterWrite() { Assert.assertEquals( manager.getCurrentData(), Arrays.asList(new TestEntity1(0l, "data1"), new TestEntity1(1l, "data2"), new TestEntity1(2l, "data3"))); } @Test public void testNoEntityManagerInteraction() { // This is on purpose. } }