package org.javaee7.jpa.datasourcedefinition;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.io.File;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
/**
* @author Alexis Hassler
*/
@RunWith(Arquillian.class)
public class DataSourceDefinitionTest {
@Deployment
public static Archive<?> deploy() {
File h2Library = Maven.resolver().loadPomFromFile("pom.xml")
.resolve("com.h2database:h2").withoutTransitivity()
.asSingleFile();
return ShrinkWrap.create(WebArchive.class)
.addClasses(DataSourceDefinitionHolder.class)
.addAsLibraries(h2Library);
}
@Resource(lookup = "java:global/MyApp/MyDataSource") DataSource dataSource;
@Test
public void should_bean_be_injected() throws Exception {
assertThat(dataSource, is(notNullValue()));
assertThat(dataSource.getConnection(), is(notNullValue()));
}
}