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 ) ) );
}
}