package org.deephacks.confit.internal.jpa;
import org.deephacks.confit.internal.jpa.JpaUtils.Jpaprovider;
import org.deephacks.confit.test.FeatureTests;
import org.deephacks.confit.test.FeatureTestsBuilder.TestRound;
import org.deephacks.confit.test.cdi.CdiFeatureTestBuilder;
import org.deephacks.confit.test.cdi.CdiFeatureTestsRunner;
import org.junit.runner.RunWith;
import javax.enterprise.inject.Produces;
import javax.inject.Singleton;
import javax.persistence.EntityManagerFactory;
import java.io.File;
import java.util.List;
import static org.deephacks.confit.test.JUnitUtils.getMavenProjectChildFile;
@Singleton
@RunWith(CdiFeatureTestsRunner.class)
public class Jpa20BeanManagerCdiTests implements FeatureTests {
@Override
public List<TestRound> build() {
return CdiFeatureTestBuilder.named(Jpa20BeanManagerCdiTests.class.getSimpleName()).build();
}
@Produces
@Singleton
public EntityManagerFactory produceEntityManagerFactory() {
File scriptDir = getMavenProjectChildFile(Jpa20BeanManager.class,
"src/main/resources/META-INF/");
File targetDir = getMavenProjectChildFile(Jpa20BeanManager.class, "target");
File jpaProperties = new File(targetDir, "jpa.properties");
Database database = Database.create(Database.DERBY, scriptDir);
Jpaprovider provider = Jpaprovider.create(JpaUtils.HIBERNATE, database);
provider.write(jpaProperties);
database.initalize();
EntityManagerFactory emf = new EntityManagerProvider()
.createEntityManagerFactory(jpaProperties);
return emf;
}
}