Permalink
Browse files

Add test for AS7-1761

  • Loading branch information...
1 parent 5b0926f commit 94a815444a4d97850a639679d5e68319546393ba @stuartwdouglas stuartwdouglas committed Sep 9, 2011
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.as.testsuite.integration.weld.jpa.scoping;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+public class CdiJpaInjectingBean {
+ @PersistenceContext(unitName = "cdiPu")
+ EntityManager em;
+
+ public Employee queryEmployeeName(int id) {
+ Query q = em.createQuery("SELECT e FROM Employee e where id=?");
+ q.setParameter(1, new Integer(id));
+ return (Employee) q.getSingleResult();
+ }
+
+
+}
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.as.testsuite.integration.weld.jpa.scoping;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+/**
+ * Employee entity class
+ *
+ * @author Scott Marlow
+ */
+@Entity
+public class Employee {
+ @Id
+ private int id;
+
+ private String name;
+
+ private String address;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public int getId() {
+
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+}
@@ -0,0 +1,85 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.as.testsuite.integration.weld.jpa.scoping;
+
+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.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.inject.Inject;
+import javax.persistence.NoResultException;
+
+/**
+ * AS7-1761
+ *
+ * Weld JPA injection tests. Simply tests that a persistence context can be injected into a CDI bean in another deployment unit
+ *
+ * @author Stuart Douglas
+ */
+@RunWith(Arquillian.class)
+public class WeldJpaInjectionScopeTestCase {
+
+ private static final String persistence_xml =
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?> " +
+ "<persistence xmlns=\"http://java.sun.com/xml/ns/persistence\" version=\"1.0\">" +
+ " <persistence-unit name=\"cdiPu\">" +
+ " <description>OrmTestCase Persistence Unit." +
+ " </description>" +
+ " <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>" +
+ "<properties> <property name=\"hibernate.hbm2ddl.auto\" value=\"create-drop\"/>" +
+ "</properties>" +
+ " </persistence-unit>" +
+ "</persistence>";
+
+
+ @Deployment
+ public static Archive<?> deploy() {
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "cdiPuScope.ear");
+ WebArchive war = ShrinkWrap.create(WebArchive.class, "simple.war");
+ war.addClasses(WeldJpaInjectionScopeTestCase.class, CdiJpaInjectingBean.class);
+ war.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
+ ear.addAsModule(war);
+
+ JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "util.jar");
+ jar.addAsResource(new StringAsset(persistence_xml), "META-INF/persistence.xml");
+ jar.addClass(Employee.class);
+ ear.addAsLibrary(jar);
+ return ear;
+ }
+
+ @Inject
+ private CdiJpaInjectingBean bean;
+
+ @Test(expected= NoResultException.class)
+ public void testOrmXmlDefinedEmployeeEntity() throws Exception {
+ Employee emp = bean.queryEmployeeName(1);
+ }
+}

0 comments on commit 94a8154

Please sign in to comment.