Arquillian Seam 2 test database
diegogusava Oct 17, 2012 12:37 PMHi guys,
i am trying to use Arquillian with the seam-2 extension and h2 database, but seems that i can´t inject a EntityManager, always return null
my components
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns="http://jboss.com/products/seam/components"
          xmlns:core="http://jboss.com/products/seam/core"
          xmlns:document="http://jboss.com/products/seam/document"
          xmlns:pdf="http://jboss.com/products/seam/pdf"
    xmlns:persistence="http://jboss.com/products/seam/persistence"
    xmlns:transaction="http://jboss.com/products/seam/transaction"
    xmlns:drools="http://jboss.com/products/seam/drools"
    xmlns:bpm="http://jboss.com/products/seam/bpm"
    xmlns:security="http://jboss.com/products/seam/security"
    xmlns:mail="http://jboss.com/products/seam/mail"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:web="http://jboss.com/products/seam/web"
    xsi:schemaLocation=
              "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd
              http://jboss.com/products/seam/document http://jboss.com/products/seam/document-2.1.xsd
        http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.1.xsd
        http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.1.xsd
        http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.1.xsd
        http://jboss.com/products/seam/bpm http://jboss.com/products/seam/bpm-2.1.xsd
        http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd
        http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.1.xsd
        http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd
        http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.1.xsd">
             <persistence:managed-persistence-context name="entityManager" auto-create="true" 
                       entity-manager-factory="#{arquillianEntityManagerFactory}"/>
             <persistence:entity-manager-factory name="arquillianEntityManagerFactory" persistence-unit-name="arquillian"/>
</components>
some dependencies of my pom.xml
<dependency>
                              <groupId>junit</groupId>
                              <artifactId>junit</artifactId>
                              <version>${version.junit}</version>
                              <scope>test</scope>
                    </dependency>
                    <dependency>
                              <groupId>org.jboss.arquillian</groupId>
                              <artifactId>arquillian-bom</artifactId>
                              <version>${version.arquillian_core}</version>
                              <type>pom</type>
                              <scope>import</scope>
                    </dependency>
                    <dependency>
                              <groupId>org.jboss.arquillian.junit</groupId>
                              <artifactId>arquillian-junit-container</artifactId>
                              <version>${version.arquillian_core}</version>
                              <scope>test</scope>
                    </dependency>
                    <dependency>
                              <groupId>org.jboss.arquillian.extension</groupId>
                              <artifactId>arquillian-seam2</artifactId>
                              <version>${version.arquillian.seam2}</version>
                              <scope>test</scope>
                    </dependency>
                    <dependency>
                              <groupId>org.easytesting</groupId>
                              <artifactId>fest-assert</artifactId>
                              <version>${version.fest.assert}</version>
                              <scope>test</scope>
                    </dependency>
                    <dependency>
                              <groupId>org.jboss.jbossas</groupId>
                              <artifactId>jboss-server-manager</artifactId>
                              <version>${version.org.jboss.jbossas_server-manager}</version>
                              <scope>test</scope>
                    </dependency>
                    <dependency>
                              <groupId>org.jboss.client</groupId>
                              <artifactId>jbossall-client</artifactId>
                              <version>${version.org.jboss.jbossas}</version>
                              <scope>test</scope>
                    </dependency>
                    <dependency>
                              <groupId>org.jboss.arquillian.container</groupId>
                              <artifactId>arquillian-jbossas-managed-4.2</artifactId>
                              <version>1.0.0.CR3</version>
                              <scope>test</scope>
                    </dependency>
                    <dependency>
                              <groupId>dom4j</groupId>
                              <artifactId>dom4j</artifactId>
                              <version>1.6.1</version>
                              <scope>provided</scope>
                    </dependency>
                    <dependency>
                              <groupId>com.h2database</groupId>
                              <artifactId>h2</artifactId>
                              <version>1.3.166</version>
                              <scope>test</scope>
                    </dependency>
my class
package com.saudesuplementar.qualirede.helpers.test;
import javax.persistence.EntityManager;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.seam.annotations.In;
import org.jboss.shrinkwrap.api.Archive;
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 org.junit.runner.RunWith;
import com.saudesuplementar.qualirede.model.Uf;
@RunWith(Arquillian.class)
public class UfTest {
    /**
     * EntityManager injetado pelo JBoss Seam.
     */
    @In("#{entityManager}")
    EntityManager entityManager;
    @Deployment
    public static Archive<?> createDeployment() {
        return ShrinkWrap
                .create(WebArchive.class, "qualirede.war")
                .addPackages(true, "com.saudesuplementar.qualirede.model")
                .addPackages(true, "org.fest")
                .addAsResource(EmptyAsset.INSTANCE, "seam.properties")
                .addAsResource("test-persistence.xml",
                        "classes/META-INF/persistence.xml")
                .addAsWebInfResource("jbossas-ds.xml")
                .setWebXML("web.xml");
    }
    @Test
    public void testeUf() throws Exception {
        // utx.begin();
        // em.joinTransaction();
        System.out.println("Inserting ufs...");
        Uf uf = new Uf();
        uf.setDescricao("Santa Catarina");
        uf.setSigla("SC");
        entityManager.persist(uf);
        // utx.commit();
        // em.clear();
    }
}
my jboss-ds.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE datasources PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <datasources> <local-tx-datasource> <jndi-name>arquillian</jndi-name> <connection-url>jdbc:h2:mem:arquillian;DB_CLOSE_DELAY=-1</connection-url> <driver-class>h2</driver-class> </local-tx-datasource> </datasources>
my persistence.xml
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="test"> <jta-data-source>java:/test</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /> <property name="hibernate.hbm2ddl.auto" value="create-drop" /> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.format_sql" value="true" /> </properties> </persistence-unit> </persistence>
is there any example to help me here?
Thanks
