package org.javaee7.extra.nosql.hibernateogm.commons; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.transaction.UserTransaction; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.EmptyAsset; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Test; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.jboss.shrinkwrap.resolver.api.maven.Maven.resolver; import static org.junit.Assert.assertThat; /** * @author Guillaume Scheibel <guillaume.scheibel@gmail.com> */ public abstract class AbstractOgmTest { final static String OGM_VERSION = "4.0.0-SNAPSHOT"; @PersistenceContext EntityManager entityManager; @Inject UserTransaction ut; public static WebArchive createDeployment(String ogmModuleName) { WebArchive webArchive = ShrinkWrap.create( WebArchive.class ) .addClass( Person.class ) .addClass( AbstractOgmTest.class ) .addAsResource( ogmModuleName + "-persistence.xml", "META-INF/persistence.xml" ) .addAsWebInfResource( EmptyAsset.INSTANCE, "beans.xml" ) .addAsLibraries( resolver().resolve( "org.hibernate.ogm:hibernate-ogm-core:" + OGM_VERSION, "org.hibernate.ogm:hibernate-ogm-" + ogmModuleName + ":" + OGM_VERSION ) .withTransitivity() .asFile() ); return webArchive; } @Test public void insertEntityTest() throws Exception { final String name = "Guillaume"; final Long id = 1L; ut.begin(); Person guillaume = new Person( id, name ); entityManager.persist( guillaume ); ut.commit(); Person person = entityManager.find( Person.class, id ); assertThat( person, is( notNullValue() ) ); assertThat( person.getId(), is( id ) ); assertThat( person.getName(), is( equalTo( name ) ) ); } }