Commit f64eb557e3506dac6d0ed79939198d7600ef324c
Exists in
master
Merge branch 'master' of git@github.com:demoiselle/framework.git
Showing
25 changed files
with
1036 additions
and
275 deletions
Show diff stats
impl/core/src/test/java/br/gov/frameworkdemoiselle/internal/interceptor/TransactionalInterceptorTest.java
@@ -35,22 +35,36 @@ | @@ -35,22 +35,36 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.internal.interceptor; | 37 | package br.gov.frameworkdemoiselle.internal.interceptor; |
38 | + | ||
38 | import static org.easymock.EasyMock.expect; | 39 | import static org.easymock.EasyMock.expect; |
39 | -import static org.easymock.EasyMock.replay; | ||
40 | import static org.easymock.EasyMock.verify; | 40 | import static org.easymock.EasyMock.verify; |
41 | import static org.junit.Assert.assertEquals; | 41 | import static org.junit.Assert.assertEquals; |
42 | import static org.junit.Assert.assertTrue; | 42 | import static org.junit.Assert.assertTrue; |
43 | import static org.junit.Assert.fail; | 43 | import static org.junit.Assert.fail; |
44 | +import static org.powermock.api.easymock.PowerMock.mockStatic; | ||
45 | +import static org.powermock.api.easymock.PowerMock.replay; | ||
46 | +import static org.powermock.api.easymock.PowerMock.replayAll; | ||
47 | + | ||
48 | +import java.util.Locale; | ||
44 | 49 | ||
50 | +import javax.enterprise.inject.Instance; | ||
45 | import javax.interceptor.InvocationContext; | 51 | import javax.interceptor.InvocationContext; |
46 | 52 | ||
47 | import org.easymock.EasyMock; | 53 | import org.easymock.EasyMock; |
48 | -import org.junit.Ignore; | 54 | +import org.junit.Before; |
49 | import org.junit.Test; | 55 | import org.junit.Test; |
56 | +import org.junit.runner.RunWith; | ||
57 | +import org.powermock.core.classloader.annotations.PrepareForTest; | ||
58 | +import org.powermock.modules.junit4.PowerMockRunner; | ||
50 | 59 | ||
51 | import br.gov.frameworkdemoiselle.DemoiselleException; | 60 | import br.gov.frameworkdemoiselle.DemoiselleException; |
61 | +import br.gov.frameworkdemoiselle.internal.implementation.TransactionInfo; | ||
52 | import br.gov.frameworkdemoiselle.transaction.Transaction; | 62 | import br.gov.frameworkdemoiselle.transaction.Transaction; |
53 | -@Ignore | 63 | +import br.gov.frameworkdemoiselle.transaction.TransactionContext; |
64 | +import br.gov.frameworkdemoiselle.util.Beans; | ||
65 | + | ||
66 | +@RunWith(PowerMockRunner.class) | ||
67 | +@PrepareForTest(Beans.class) | ||
54 | public class TransactionalInterceptorTest { | 68 | public class TransactionalInterceptorTest { |
55 | 69 | ||
56 | private TransactionalInterceptor interceptor; | 70 | private TransactionalInterceptor interceptor; |
@@ -59,6 +73,8 @@ public class TransactionalInterceptorTest { | @@ -59,6 +73,8 @@ public class TransactionalInterceptorTest { | ||
59 | 73 | ||
60 | private Transaction transaction; | 74 | private Transaction transaction; |
61 | 75 | ||
76 | + private TransactionContext transactionContext; | ||
77 | + | ||
62 | class ClassWithMethod { | 78 | class ClassWithMethod { |
63 | 79 | ||
64 | public void method() { | 80 | public void method() { |
@@ -66,26 +82,35 @@ public class TransactionalInterceptorTest { | @@ -66,26 +82,35 @@ public class TransactionalInterceptorTest { | ||
66 | } | 82 | } |
67 | } | 83 | } |
68 | 84 | ||
69 | - // @Before | ||
70 | - // @SuppressWarnings("unchecked") | ||
71 | - // public void setUp() throws Exception { | ||
72 | - // Instance<Transaction> transactionInstance = EasyMock.createMock(Instance.class); | ||
73 | - // Instance<TransactionInfo> transactionContextInstance = EasyMock.createMock(Instance.class); | ||
74 | - // | ||
75 | - // Logger logger = EasyMock.createMock(Logger.class); | ||
76 | - // ResourceBundle bundle = new ResourceBundle("demoiselle-core-bundle", Locale.getDefault()); | ||
77 | - // transaction = EasyMock.createMock(Transaction.class); | ||
78 | - // TransactionInfo context = new TransactionInfo(); | ||
79 | - // | ||
80 | - // this.interceptor = new TransactionalInterceptor(transactionInstance, transactionContextInstance, logger, bundle); | ||
81 | - // this.ic = EasyMock.createMock(InvocationContext.class); | ||
82 | - // | ||
83 | - // expect(transactionInstance.get()).andReturn(transaction).anyTimes(); | ||
84 | - // expect(transactionContextInstance.get()).andReturn(context).anyTimes(); | ||
85 | - // expect(this.ic.proceed()).andReturn(null); | ||
86 | - // expect(this.ic.getMethod()).andReturn(ClassWithMethod.class.getMethod("method")); | ||
87 | - // replay(this.ic, transactionInstance, transactionContextInstance); | ||
88 | - // } | 85 | + @Before |
86 | + @SuppressWarnings("unchecked") | ||
87 | + public void setUp() throws Exception { | ||
88 | + Instance<Transaction> transactionInstance = EasyMock.createMock(Instance.class); | ||
89 | + Instance<TransactionInfo> transactionInfoInstance = EasyMock.createMock(Instance.class); | ||
90 | + Instance<TransactionContext> transactionContextInstance = EasyMock.createMock(Instance.class); | ||
91 | + | ||
92 | + TransactionInfo transactionInfo = new TransactionInfo(); | ||
93 | + transaction = EasyMock.createMock(Transaction.class); | ||
94 | + this.transactionContext = EasyMock.createMock(TransactionContext.class); | ||
95 | + this.ic = EasyMock.createMock(InvocationContext.class); | ||
96 | + | ||
97 | + mockStatic(Beans.class); | ||
98 | + expect(Beans.getReference(Locale.class)).andReturn(Locale.getDefault()); | ||
99 | + expect(Beans.getReference(TransactionContext.class)).andReturn(transactionContext); | ||
100 | + expect(Beans.getReference(TransactionInfo.class)).andReturn(transactionInfo); | ||
101 | + | ||
102 | + expect(transactionInstance.get()).andReturn(transaction).anyTimes(); | ||
103 | + expect(transactionContextInstance.get()).andReturn(transactionContext).anyTimes(); | ||
104 | + expect(transactionInfoInstance.get()).andReturn(transactionInfo).anyTimes(); | ||
105 | + expect(transactionContext.getCurrentTransaction()).andReturn(transaction).anyTimes(); | ||
106 | + expect(this.ic.proceed()).andReturn(null); | ||
107 | + expect(this.ic.getMethod()).andReturn(ClassWithMethod.class.getMethod("method")); | ||
108 | + replayAll(Beans.class, this.ic, transactionContextInstance, transactionInfoInstance, transactionInstance, | ||
109 | + transactionContext); | ||
110 | + | ||
111 | + this.interceptor = new TransactionalInterceptor(); | ||
112 | + | ||
113 | + } | ||
89 | 114 | ||
90 | @Test | 115 | @Test |
91 | public void testManageWithInativeTransactionAndTransactionInterceptorBeginAndDoNotIsMarkedRollback() | 116 | public void testManageWithInativeTransactionAndTransactionInterceptorBeginAndDoNotIsMarkedRollback() |
impl/core/src/test/java/br/gov/frameworkdemoiselle/transaction/TransactionExceptionTest.java
0 → 100644
@@ -0,0 +1,20 @@ | @@ -0,0 +1,20 @@ | ||
1 | +package br.gov.frameworkdemoiselle.transaction; | ||
2 | + | ||
3 | +import java.sql.SQLException; | ||
4 | + | ||
5 | +import junit.framework.Assert; | ||
6 | + | ||
7 | +import org.junit.Test; | ||
8 | + | ||
9 | + | ||
10 | +public class TransactionExceptionTest { | ||
11 | + | ||
12 | + SQLException cause = new SQLException(); | ||
13 | + | ||
14 | + @Test | ||
15 | + public void testTransactionException() { | ||
16 | + TransactionException test = new TransactionException(cause); | ||
17 | + Assert.assertEquals("java.sql.SQLException", test.getCause().toString()); | ||
18 | + } | ||
19 | + | ||
20 | +} |
impl/extension/jpa/.gitignore
impl/extension/jpa/pom.xml
1 | -<!-- | ||
2 | - Demoiselle Framework | ||
3 | - Copyright (C) 2010 SERPRO | ||
4 | - ============================================================================ | ||
5 | - This file is part of Demoiselle Framework. | ||
6 | - | ||
7 | - Demoiselle Framework is free software; you can redistribute it and/or | ||
8 | - modify it under the terms of the GNU Lesser General Public License version 3 | ||
9 | - as published by the Free Software Foundation. | ||
10 | - | ||
11 | - This program is distributed in the hope that it will be useful, | ||
12 | - but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | - GNU General Public License for more details. | ||
15 | - | ||
16 | - You should have received a copy of the GNU Lesser General Public License version 3 | ||
17 | - along with this program; if not, see <http://www.gnu.org/licenses /> | ||
18 | - or write to the Free Software Foundation, Inc., 51 Franklin Street, | ||
19 | - Fifth Floor, Boston, MA 02110-1301, USA. | ||
20 | - ============================================================================ | ||
21 | - Este arquivo é parte do Framework Demoiselle. | ||
22 | - | ||
23 | - O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | ||
24 | - modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | ||
25 | - do Software Livre (FSF). | ||
26 | - | ||
27 | - Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | ||
28 | - GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | ||
29 | - APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | ||
30 | - para maiores detalhes. | ||
31 | - | ||
32 | - Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | ||
33 | - "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses /> | ||
34 | - ou escreva para a Fundação do Software Livre (FSF) Inc., | ||
35 | - 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | ||
36 | ---> | ||
37 | -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | 1 | +<!-- Demoiselle Framework Copyright (C) 2010 SERPRO ============================================================================ |
2 | + This file is part of Demoiselle Framework. Demoiselle Framework is free software; | ||
3 | + you can redistribute it and/or modify it under the terms of the GNU Lesser | ||
4 | + General Public License version 3 as published by the Free Software Foundation. | ||
5 | + This program is distributed in the hope that it will be useful, but WITHOUT | ||
6 | + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | ||
7 | + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. | ||
8 | + You should have received a copy of the GNU Lesser General Public License | ||
9 | + version 3 along with this program; if not, see <http://www.gnu.org/licenses | ||
10 | + /> or write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth | ||
11 | + Floor, Boston, MA 02110-1301, USA. ============================================================================ | ||
12 | + Este arquivo é parte do Framework Demoiselle. O Framework Demoiselle é um | ||
13 | + software livre; você pode redistribuí-lo e/ou modificá-lo dentro dos termos | ||
14 | + da GNU LGPL versão 3 como publicada pela Fundação do Software Livre (FSF). | ||
15 | + Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | ||
16 | + GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO | ||
17 | + EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português para maiores | ||
18 | + detalhes. Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | ||
19 | + "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses | ||
20 | + /> ou escreva para a Fundação do Software Livre (FSF) Inc., 51 Franklin St, | ||
21 | + Fifth Floor, Boston, MA 02111-1301, USA. --> | ||
22 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
23 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | ||
38 | 24 | ||
39 | <modelVersion>4.0.0</modelVersion> | 25 | <modelVersion>4.0.0</modelVersion> |
40 | 26 | ||
@@ -71,6 +57,22 @@ | @@ -71,6 +57,22 @@ | ||
71 | <groupId>org.eclipse.persistence</groupId> | 57 | <groupId>org.eclipse.persistence</groupId> |
72 | <artifactId>javax.persistence</artifactId> | 58 | <artifactId>javax.persistence</artifactId> |
73 | </dependency> | 59 | </dependency> |
60 | + <dependency> | ||
61 | + <groupId>org.hibernate</groupId> | ||
62 | + <artifactId>hibernate-entitymanager</artifactId> | ||
63 | + <scope>test</scope> | ||
64 | + </dependency> | ||
65 | + <dependency> | ||
66 | + <groupId>br.gov.frameworkdemoiselle.component</groupId> | ||
67 | + <artifactId>demoiselle-junit</artifactId> | ||
68 | + <version>2.3.0-RC2-SNAPSHOT</version> | ||
69 | + <scope>test</scope> | ||
70 | + </dependency> | ||
71 | + <dependency> | ||
72 | + <groupId>hsqldb</groupId> | ||
73 | + <artifactId>hsqldb</artifactId> | ||
74 | + <scope>test</scope> | ||
75 | + </dependency> | ||
74 | </dependencies> | 76 | </dependencies> |
75 | 77 | ||
76 | <repositories> | 78 | <repositories> |
impl/extension/jpa/src/test/java/br/gov/frameworkdemoiselle/domain/Client.java
0 → 100644
@@ -0,0 +1,65 @@ | @@ -0,0 +1,65 @@ | ||
1 | +package br.gov.frameworkdemoiselle.domain; | ||
2 | + | ||
3 | +import java.io.Serializable; | ||
4 | +import java.util.Date; | ||
5 | + | ||
6 | +import javax.persistence.Entity; | ||
7 | +import javax.persistence.GeneratedValue; | ||
8 | +import javax.persistence.Id; | ||
9 | +import javax.persistence.Temporal; | ||
10 | +import javax.persistence.TemporalType; | ||
11 | + | ||
12 | +/** | ||
13 | + * Simle entity for test classes | ||
14 | + * @author serpro | ||
15 | + * | ||
16 | + */ | ||
17 | +@Entity | ||
18 | +public class Client implements Serializable { | ||
19 | + | ||
20 | + private static final long serialVersionUID = 1L; | ||
21 | + | ||
22 | + private Long id; | ||
23 | + | ||
24 | + private String name; | ||
25 | + | ||
26 | + private Date birthDate; | ||
27 | + | ||
28 | + @Id | ||
29 | + @GeneratedValue | ||
30 | + public Long getId() { | ||
31 | + return id; | ||
32 | + } | ||
33 | + | ||
34 | + | ||
35 | + public void setId(Long id) { | ||
36 | + this.id = id; | ||
37 | + } | ||
38 | + | ||
39 | + | ||
40 | + public String getName() { | ||
41 | + return name; | ||
42 | + } | ||
43 | + | ||
44 | + | ||
45 | + public void setName(String name) { | ||
46 | + this.name = name; | ||
47 | + } | ||
48 | + | ||
49 | + | ||
50 | + @Temporal(TemporalType.DATE) | ||
51 | + public Date getBirthDate() { | ||
52 | + return birthDate; | ||
53 | + } | ||
54 | + | ||
55 | + | ||
56 | + | ||
57 | + public void setBirthDate(Date birthDate) { | ||
58 | + this.birthDate = birthDate; | ||
59 | + } | ||
60 | + | ||
61 | + | ||
62 | + | ||
63 | + | ||
64 | + | ||
65 | +} |
impl/extension/jpa/src/test/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerFactoryProducerTest.java
@@ -58,6 +58,7 @@ public class EntityManagerFactoryProducerTest { | @@ -58,6 +58,7 @@ public class EntityManagerFactoryProducerTest { | ||
58 | Assert.assertEquals(emFactory, producer.create("pu1")); | 58 | Assert.assertEquals(emFactory, producer.create("pu1")); |
59 | } | 59 | } |
60 | 60 | ||
61 | + | ||
61 | @Test | 62 | @Test |
62 | public void testCreateWithUnitPersistenceNotExisting() { | 63 | public void testCreateWithUnitPersistenceNotExisting() { |
63 | 64 | ||
@@ -69,6 +70,22 @@ public class EntityManagerFactoryProducerTest { | @@ -69,6 +70,22 @@ public class EntityManagerFactoryProducerTest { | ||
69 | Assert.assertEquals(emFactory, producer.create("pu1")); | 70 | Assert.assertEquals(emFactory, producer.create("pu1")); |
70 | } | 71 | } |
71 | 72 | ||
73 | + /** | ||
74 | + * Test if after producing an entity manager, the EntityManagerFactory is correctly stored in the | ||
75 | + * cache associated with the current class loader. | ||
76 | + */ | ||
77 | + @Test | ||
78 | + public void testStorageCacheAfterCreate(){ | ||
79 | + mockStatic(Persistence.class); | ||
80 | + expect(Persistence.createEntityManagerFactory("pu1")).andReturn(emFactory); | ||
81 | + replay(Persistence.class); | ||
82 | + | ||
83 | + Map<String,EntityManagerFactory> producerCache = producer.getCache(); | ||
84 | + Assert.assertNotNull(producerCache); | ||
85 | + Assert.assertTrue(producerCache.containsKey("pu1")); | ||
86 | + Assert.assertTrue(producerCache.containsValue(emFactory)); | ||
87 | + } | ||
88 | + | ||
72 | @Test | 89 | @Test |
73 | public void testInitWithoutError() { | 90 | public void testInitWithoutError() { |
74 | mockStatic(Persistence.class); | 91 | mockStatic(Persistence.class); |
@@ -84,15 +101,16 @@ public class EntityManagerFactoryProducerTest { | @@ -84,15 +101,16 @@ public class EntityManagerFactoryProducerTest { | ||
84 | Assert.assertEquals(emFactory, internalCache.get("pu1")); | 101 | Assert.assertEquals(emFactory, internalCache.get("pu1")); |
85 | } | 102 | } |
86 | 103 | ||
87 | - @Test | 104 | + /*@Test |
88 | public void testInitWithError() { | 105 | public void testInitWithError() { |
89 | try { | 106 | try { |
107 | + | ||
90 | producer.loadPersistenceUnits(); | 108 | producer.loadPersistenceUnits(); |
91 | Assert.fail(); | 109 | Assert.fail(); |
92 | }catch(DemoiselleException cause) { | 110 | }catch(DemoiselleException cause) { |
93 | Assert.assertTrue(true); | 111 | Assert.assertTrue(true); |
94 | } | 112 | } |
95 | - } | 113 | + }*/ |
96 | 114 | ||
97 | @Test | 115 | @Test |
98 | public void testGetCache() { | 116 | public void testGetCache() { |
@@ -120,4 +138,41 @@ public class EntityManagerFactoryProducerTest { | @@ -120,4 +138,41 @@ public class EntityManagerFactoryProducerTest { | ||
120 | producer.close(); | 138 | producer.close(); |
121 | verify(emFactory); | 139 | verify(emFactory); |
122 | } | 140 | } |
141 | + | ||
142 | + /** | ||
143 | + * Test if detecting the persistence unit with an empty name throws correct error. | ||
144 | + */ | ||
145 | + @Test | ||
146 | + public void testEmptyPersistenceUnitName(){ | ||
147 | + EntityManagerFactoryProducer.ENTITY_MANAGER_RESOURCE = "persistence-empty-name.xml"; | ||
148 | + | ||
149 | + try{ | ||
150 | + producer.getCache(); | ||
151 | + Assert.fail(); | ||
152 | + } | ||
153 | + catch(DemoiselleException de){ | ||
154 | + // | ||
155 | + } | ||
156 | + } | ||
157 | + | ||
158 | + /** | ||
159 | + * Test if asking to create an entity manager still not in the cache will correctly create it and put it in the cache. | ||
160 | + */ | ||
161 | + @Test | ||
162 | + public void testCreatePersistenceUnitNotInCache() { | ||
163 | + mockStatic(Persistence.class); | ||
164 | + expect(Persistence.createEntityManagerFactory("pu1")).andReturn(emFactory); | ||
165 | + replay(Persistence.class); | ||
166 | + | ||
167 | + ClassLoader cl = this.getClass().getClassLoader(); | ||
168 | + HashMap<String, EntityManagerFactory> emEntry = new HashMap<String, EntityManagerFactory>(); | ||
169 | + cache.put(cl,emEntry); | ||
170 | + | ||
171 | + producer.create("pu1"); | ||
172 | + | ||
173 | + Map<String,EntityManagerFactory> producerCache = producer.getCache(); | ||
174 | + Assert.assertNotNull(producerCache); | ||
175 | + Assert.assertTrue(producerCache.containsKey("pu1")); | ||
176 | + Assert.assertTrue(producerCache.containsValue(emFactory)); | ||
177 | + } | ||
123 | } | 178 | } |
impl/extension/jpa/src/test/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerProducerTest.java
@@ -35,7 +35,6 @@ | @@ -35,7 +35,6 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.internal.producer; | 37 | package br.gov.frameworkdemoiselle.internal.producer; |
38 | -import org.junit.Ignore; | ||
39 | import static org.easymock.EasyMock.createMock; | 38 | import static org.easymock.EasyMock.createMock; |
40 | import static org.easymock.EasyMock.expect; | 39 | import static org.easymock.EasyMock.expect; |
41 | import static org.easymock.EasyMock.verify; | 40 | import static org.easymock.EasyMock.verify; |
@@ -69,7 +68,8 @@ import br.gov.frameworkdemoiselle.annotation.Name; | @@ -69,7 +68,8 @@ import br.gov.frameworkdemoiselle.annotation.Name; | ||
69 | import br.gov.frameworkdemoiselle.internal.configuration.EntityManagerConfig; | 68 | import br.gov.frameworkdemoiselle.internal.configuration.EntityManagerConfig; |
70 | import br.gov.frameworkdemoiselle.internal.proxy.EntityManagerProxy; | 69 | import br.gov.frameworkdemoiselle.internal.proxy.EntityManagerProxy; |
71 | import br.gov.frameworkdemoiselle.util.ResourceBundle; | 70 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
72 | -@Ignore | 71 | + |
72 | + | ||
73 | @RunWith(PowerMockRunner.class) | 73 | @RunWith(PowerMockRunner.class) |
74 | @PrepareForTest(Persistence.class) | 74 | @PrepareForTest(Persistence.class) |
75 | public class EntityManagerProducerTest { | 75 | public class EntityManagerProducerTest { |
impl/extension/jpa/src/test/java/br/gov/frameworkdemoiselle/internal/proxy/EntityManagerProxyTest.java
@@ -35,7 +35,6 @@ | @@ -35,7 +35,6 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.internal.proxy; | 37 | package br.gov.frameworkdemoiselle.internal.proxy; |
38 | -import org.junit.Ignore; | ||
39 | import static org.easymock.EasyMock.expect; | 38 | import static org.easymock.EasyMock.expect; |
40 | import static org.easymock.EasyMock.replay; | 39 | import static org.easymock.EasyMock.replay; |
41 | import static org.easymock.EasyMock.verify; | 40 | import static org.easymock.EasyMock.verify; |
@@ -67,7 +66,7 @@ import org.powermock.modules.junit4.PowerMockRunner; | @@ -67,7 +66,7 @@ import org.powermock.modules.junit4.PowerMockRunner; | ||
67 | import br.gov.frameworkdemoiselle.internal.producer.EntityManagerProducer; | 66 | import br.gov.frameworkdemoiselle.internal.producer.EntityManagerProducer; |
68 | import br.gov.frameworkdemoiselle.internal.producer.FakeEntityManager; | 67 | import br.gov.frameworkdemoiselle.internal.producer.FakeEntityManager; |
69 | import br.gov.frameworkdemoiselle.util.Beans; | 68 | import br.gov.frameworkdemoiselle.util.Beans; |
70 | -@Ignore | 69 | + |
71 | @RunWith(PowerMockRunner.class) | 70 | @RunWith(PowerMockRunner.class) |
72 | @PrepareForTest({ Beans.class }) | 71 | @PrepareForTest({ Beans.class }) |
73 | public class EntityManagerProxyTest { | 72 | public class EntityManagerProxyTest { |
@@ -77,7 +76,7 @@ public class EntityManagerProxyTest { | @@ -77,7 +76,7 @@ public class EntityManagerProxyTest { | ||
77 | private EntityManager entityManager; | 76 | private EntityManager entityManager; |
78 | 77 | ||
79 | private EntityManagerProducer entityManagerContext; | 78 | private EntityManagerProducer entityManagerContext; |
80 | - | 79 | + |
81 | @Before | 80 | @Before |
82 | public void setUp() throws Exception { | 81 | public void setUp() throws Exception { |
83 | mockStatic(Beans.class); | 82 | mockStatic(Beans.class); |
@@ -87,6 +86,8 @@ public class EntityManagerProxyTest { | @@ -87,6 +86,8 @@ public class EntityManagerProxyTest { | ||
87 | expect(Beans.getReference(EntityManagerProducer.class)).andReturn(this.entityManagerContext).anyTimes(); | 86 | expect(Beans.getReference(EntityManagerProducer.class)).andReturn(this.entityManagerContext).anyTimes(); |
88 | expect(this.entityManagerContext.getEntityManager("teste")).andReturn(this.entityManager).anyTimes(); | 87 | expect(this.entityManagerContext.getEntityManager("teste")).andReturn(this.entityManager).anyTimes(); |
89 | replay(this.entityManagerContext); | 88 | replay(this.entityManagerContext); |
89 | + //expect(this.entityManager.getTransaction()).andReturn(transaction).anyTimes(); | ||
90 | + //replay(this.entityManager); | ||
90 | replayAll(); | 91 | replayAll(); |
91 | 92 | ||
92 | this.entityManagerProxy = new EntityManagerProxy("teste"); | 93 | this.entityManagerProxy = new EntityManagerProxy("teste"); |
@@ -336,44 +337,49 @@ public class EntityManagerProxyTest { | @@ -336,44 +337,49 @@ public class EntityManagerProxyTest { | ||
336 | 337 | ||
337 | @Test | 338 | @Test |
338 | public void testCreateQuery() { | 339 | public void testCreateQuery() { |
339 | - Query query = null; | 340 | + Query query = EasyMock.createMock(Query.class); |
340 | expect(this.entityManager.createQuery("teste")).andReturn(query); | 341 | expect(this.entityManager.createQuery("teste")).andReturn(query); |
341 | replay(this.entityManager); | 342 | replay(this.entityManager); |
342 | - assertEquals(QueryProxy.class, this.entityManagerProxy.createQuery("teste").getClass()); | 343 | + assertTrue(Query.class.isAssignableFrom(this.entityManagerProxy.createQuery("teste").getClass()) ); |
343 | verify(this.entityManager); | 344 | verify(this.entityManager); |
344 | } | 345 | } |
345 | 346 | ||
346 | @Test | 347 | @Test |
347 | public void testCreateQueryWithParamCriteria() { | 348 | public void testCreateQueryWithParamCriteria() { |
348 | - TypedQuery<Object> typedQuery = null; | 349 | + @SuppressWarnings("unchecked") |
350 | + TypedQuery<Object> typedQuery = EasyMock.createMock(TypedQuery.class); | ||
351 | + | ||
349 | CriteriaQuery<Object> criteriaQuery = null; | 352 | CriteriaQuery<Object> criteriaQuery = null; |
350 | expect(this.entityManager.createQuery(criteriaQuery)).andReturn(typedQuery); | 353 | expect(this.entityManager.createQuery(criteriaQuery)).andReturn(typedQuery); |
351 | replay(this.entityManager); | 354 | replay(this.entityManager); |
352 | - assertEquals(TypedQueryProxy.class, this.entityManagerProxy.createQuery(criteriaQuery).getClass()); | 355 | + assertTrue(TypedQuery.class.isAssignableFrom(this.entityManagerProxy.createQuery(criteriaQuery).getClass())); |
353 | verify(this.entityManager); | 356 | verify(this.entityManager); |
354 | } | 357 | } |
355 | 358 | ||
356 | @Test | 359 | @Test |
357 | public void testCreateQueryWithParamStringAndClass() { | 360 | public void testCreateQueryWithParamStringAndClass() { |
358 | - TypedQuery<String> typeQuery = null; | 361 | + @SuppressWarnings("unchecked") |
362 | + TypedQuery<String> typeQuery = EasyMock.createMock(TypedQuery.class); | ||
363 | + | ||
359 | expect(this.entityManager.createQuery("teste", String.class)).andReturn(typeQuery); | 364 | expect(this.entityManager.createQuery("teste", String.class)).andReturn(typeQuery); |
360 | replay(this.entityManager); | 365 | replay(this.entityManager); |
361 | - assertEquals(TypedQueryProxy.class, this.entityManagerProxy.createQuery("teste", String.class).getClass()); | 366 | + assertTrue(TypedQuery.class.isAssignableFrom(this.entityManagerProxy.createQuery("teste", String.class).getClass())); |
362 | verify(this.entityManager); | 367 | verify(this.entityManager); |
363 | } | 368 | } |
364 | 369 | ||
365 | @Test | 370 | @Test |
366 | public void testCreateNamedQuery() { | 371 | public void testCreateNamedQuery() { |
367 | - Query query = null; | 372 | + Query query = EasyMock.createMock(Query.class); |
368 | expect(this.entityManager.createNamedQuery("teste")).andReturn(query); | 373 | expect(this.entityManager.createNamedQuery("teste")).andReturn(query); |
369 | replay(this.entityManager); | 374 | replay(this.entityManager); |
370 | - assertEquals(QueryProxy.class, this.entityManagerProxy.createNamedQuery("teste").getClass()); | 375 | + assertTrue(Query.class.isAssignableFrom(this.entityManagerProxy.createNamedQuery("teste").getClass())); |
371 | verify(this.entityManager); | 376 | verify(this.entityManager); |
372 | } | 377 | } |
373 | 378 | ||
374 | @Test | 379 | @Test |
375 | public void testCreateNamedQueryWithParamsStringAndClass() { | 380 | public void testCreateNamedQueryWithParamsStringAndClass() { |
376 | - TypedQuery<String> typedQuery = null; | 381 | + @SuppressWarnings("unchecked") |
382 | + TypedQuery<String> typedQuery = EasyMock.createMock(TypedQuery.class); | ||
377 | expect(this.entityManager.createNamedQuery("teste", String.class)).andReturn(typedQuery); | 383 | expect(this.entityManager.createNamedQuery("teste", String.class)).andReturn(typedQuery); |
378 | replay(this.entityManager); | 384 | replay(this.entityManager); |
379 | assertEquals(typedQuery, this.entityManagerProxy.createNamedQuery("teste", String.class)); | 385 | assertEquals(typedQuery, this.entityManagerProxy.createNamedQuery("teste", String.class)); |
impl/extension/jpa/src/test/java/br/gov/frameworkdemoiselle/internal/proxy/QueryProxyTest.java
0 → 100644
@@ -0,0 +1,255 @@ | @@ -0,0 +1,255 @@ | ||
1 | +package br.gov.frameworkdemoiselle.internal.proxy; | ||
2 | + | ||
3 | +import java.util.Collections; | ||
4 | +import java.util.Date; | ||
5 | +import java.util.HashMap; | ||
6 | +import java.util.List; | ||
7 | +import java.util.Map; | ||
8 | + | ||
9 | +import javax.persistence.EntityManager; | ||
10 | +import javax.persistence.EntityManagerFactory; | ||
11 | +import javax.persistence.FlushModeType; | ||
12 | +import javax.persistence.LockModeType; | ||
13 | +import javax.persistence.NoResultException; | ||
14 | +import javax.persistence.Persistence; | ||
15 | +import javax.persistence.Query; | ||
16 | +import javax.persistence.TemporalType; | ||
17 | + | ||
18 | +import org.easymock.EasyMock; | ||
19 | +import org.junit.Assert; | ||
20 | +import org.junit.Before; | ||
21 | +import org.junit.Ignore; | ||
22 | +import org.junit.Test; | ||
23 | +import org.junit.runner.RunWith; | ||
24 | +import org.powermock.api.easymock.PowerMock; | ||
25 | +import org.powermock.core.classloader.annotations.PrepareForTest; | ||
26 | +import org.powermock.modules.junit4.PowerMockRunner; | ||
27 | +import org.powermock.reflect.Whitebox; | ||
28 | + | ||
29 | +import br.gov.frameworkdemoiselle.domain.Client; | ||
30 | +import br.gov.frameworkdemoiselle.internal.producer.EntityManagerProducer; | ||
31 | +import br.gov.frameworkdemoiselle.util.Beans; | ||
32 | + | ||
33 | +/** | ||
34 | + * Test the proxied {@link Query} class, {@link QueryProxy}. | ||
35 | + * @author 81986912515 | ||
36 | + * | ||
37 | + */ | ||
38 | +@Ignore | ||
39 | +@RunWith(PowerMockRunner.class) | ||
40 | +@PrepareForTest({Beans.class}) | ||
41 | +public class QueryProxyTest { | ||
42 | + | ||
43 | + private EntityManager manager; | ||
44 | + private EntityManagerProducer producer; | ||
45 | + | ||
46 | + @Before | ||
47 | + public void setUp(){ | ||
48 | + | ||
49 | + Map<String, Object> configOverrides = new HashMap<String, Object>(); | ||
50 | + configOverrides.put("javax.persistence.provider", "org.hibernate.ejb.HibernatePersistence"); | ||
51 | + configOverrides.put("javax.persistence.jdbc.url", "jdbc:hsqldb:hsql:."); | ||
52 | + configOverrides.put("hibernate.show_sql", "true"); | ||
53 | + configOverrides.put("hibernate.hbm2ddl.auto", "create-drop"); | ||
54 | + | ||
55 | + EntityManagerFactory factory = Persistence.createEntityManagerFactory("pu1", configOverrides); | ||
56 | + EntityManager delegate = factory.createEntityManager(); | ||
57 | + | ||
58 | + Map<String, EntityManager> cache = Collections.synchronizedMap(new HashMap<String, EntityManager>()); | ||
59 | + cache.put("pu1", delegate); | ||
60 | + | ||
61 | + producer = new EntityManagerProducer(); | ||
62 | + Whitebox.setInternalState(producer, "cache", cache); | ||
63 | + | ||
64 | + PowerMock.mockStatic(Beans.class); | ||
65 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(12); | ||
66 | + PowerMock.replayAll(); | ||
67 | + | ||
68 | + manager = new EntityManagerProxy("pu1"); | ||
69 | + | ||
70 | + manager.getTransaction().begin(); | ||
71 | + manager.createQuery("delete from Client").executeUpdate(); | ||
72 | + | ||
73 | + Client client = new Client(); | ||
74 | + client.setName("Cliente 1"); | ||
75 | + client.setBirthDate(new Date()); | ||
76 | + manager.persist(client); | ||
77 | + | ||
78 | + client = new Client(); | ||
79 | + client.setName("Cliente 2"); | ||
80 | + client.setBirthDate(new Date()); | ||
81 | + manager.persist(client); | ||
82 | + | ||
83 | + client = new Client(); | ||
84 | + client.setName("Cliente 3"); | ||
85 | + client.setBirthDate(new Date()); | ||
86 | + manager.persist(client); | ||
87 | + | ||
88 | + manager.flush(); | ||
89 | + manager.getTransaction().commit(); | ||
90 | + manager.clear(); | ||
91 | + | ||
92 | + PowerMock.resetAll(); | ||
93 | + } | ||
94 | + | ||
95 | + private QueryProxy getQueryProxy(String jpql,Object... params){ | ||
96 | + Query q = manager.createQuery(jpql); | ||
97 | + if (!(q instanceof QueryProxy)){ | ||
98 | + Assert.fail("Query não é instância de QueryProxy"); | ||
99 | + } | ||
100 | + | ||
101 | + if (params!=null){ | ||
102 | + int count = 1; | ||
103 | + for (Object param : params){ | ||
104 | + q.setParameter(count++, param); | ||
105 | + } | ||
106 | + } | ||
107 | + | ||
108 | + return (QueryProxy)q; | ||
109 | + } | ||
110 | + | ||
111 | + @Test | ||
112 | + public void testResultList(){ | ||
113 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(2); | ||
114 | + PowerMock.replay(Beans.class); | ||
115 | + | ||
116 | + List<?> retorno = getQueryProxy("select c from Client c").getResultList(); | ||
117 | + Assert.assertNotNull(retorno); | ||
118 | + Assert.assertFalse(retorno.isEmpty()); | ||
119 | + } | ||
120 | + | ||
121 | + @Test | ||
122 | + public void testSingleResult(){ | ||
123 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(2); | ||
124 | + PowerMock.replay(Beans.class); | ||
125 | + | ||
126 | + Client retorno = (Client)getQueryProxy("select c from Client c where c.name=?1","Cliente 1").getSingleResult(); | ||
127 | + Assert.assertNotNull(retorno); | ||
128 | + } | ||
129 | + | ||
130 | + @Test | ||
131 | + public void testExecuteUpdate(){ | ||
132 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(4); | ||
133 | + PowerMock.replay(Beans.class); | ||
134 | + | ||
135 | + manager.getTransaction().begin(); | ||
136 | + int linesAffected = getQueryProxy("update Client set name=?1 where name=?2","Novo Cliente","Cliente 1").executeUpdate(); | ||
137 | + manager.getTransaction().commit(); | ||
138 | + Assert.assertEquals(1, linesAffected); | ||
139 | + } | ||
140 | + | ||
141 | + @Test | ||
142 | + public void testPagination(){ | ||
143 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(2); | ||
144 | + PowerMock.replay(Beans.class); | ||
145 | + | ||
146 | + QueryProxy proxy = getQueryProxy("select c from Client c"); | ||
147 | + | ||
148 | + proxy.setMaxResults(2); | ||
149 | + Assert.assertEquals(2, proxy.getMaxResults()); | ||
150 | + | ||
151 | + proxy.setFirstResult(1); | ||
152 | + Assert.assertEquals(1, proxy.getFirstResult()); | ||
153 | + | ||
154 | + List<?> result = proxy.getResultList(); | ||
155 | + Assert.assertEquals(2, result.size()); | ||
156 | + } | ||
157 | + | ||
158 | + @Test | ||
159 | + public void testHint(){ | ||
160 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(14); | ||
161 | + PowerMock.replay(Beans.class); | ||
162 | + | ||
163 | + //Consulta um cliente definindo a hint readOnly, que torna a entidade retornada não atualizável. | ||
164 | + manager.getTransaction().begin(); | ||
165 | + QueryProxy proxy = getQueryProxy("select c from Client c where c.name=?1","Cliente 1"); | ||
166 | + proxy.setHint("org.hibernate.readOnly", true); | ||
167 | + Assert.assertFalse( proxy.getHints().isEmpty() ); | ||
168 | + | ||
169 | + //Tenta atualizar a entidade e limpar o cache de primeiro nível | ||
170 | + Client c = (Client)proxy.getSingleResult(); | ||
171 | + c.setName("Cliente 1 Alterado"); | ||
172 | + manager.flush(); | ||
173 | + manager.getTransaction().commit(); | ||
174 | + manager.clear(); | ||
175 | + | ||
176 | + //Reconsultar a entidade tem que retornar 1 resultado, pois o nome "Cliente 1" não deve ter sido alterado. | ||
177 | + manager.getTransaction().begin(); | ||
178 | + proxy = getQueryProxy("select c from Client c where c.name=?1","Cliente 1"); | ||
179 | + c = (Client)proxy.getSingleResult(); | ||
180 | + Assert.assertNotNull(c); | ||
181 | + | ||
182 | + //Mudar a entidade agora tem que funcionar, pois não foi informado o hint | ||
183 | + c.setName("Cliente 1 Alterado"); | ||
184 | + manager.flush(); | ||
185 | + manager.getTransaction().commit(); | ||
186 | + manager.clear(); | ||
187 | + | ||
188 | + proxy = getQueryProxy("select c from Client c where c.name=?1","Cliente 1"); | ||
189 | + | ||
190 | + try{ | ||
191 | + proxy.getSingleResult(); | ||
192 | + Assert.fail(); | ||
193 | + } | ||
194 | + catch(NoResultException ne){ | ||
195 | + } | ||
196 | + | ||
197 | + PowerMock.verifyAll(); | ||
198 | + } | ||
199 | + | ||
200 | + @Test | ||
201 | + public void testParameters(){ | ||
202 | + | ||
203 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(2); | ||
204 | + PowerMock.replay(Beans.class); | ||
205 | + | ||
206 | + QueryProxy proxy = getQueryProxy("select c.name from Client c where 'Named Parameter'=:name and c.birthDate=:dateName and c.name=?1 and c.birthDate=?2"); | ||
207 | + | ||
208 | + Date dateValue = new Date(); | ||
209 | + | ||
210 | + proxy.setParameter("name", "Named Parameter"); | ||
211 | + proxy.setParameter("dateName", dateValue, TemporalType.DATE); | ||
212 | + | ||
213 | + proxy.setParameter(1, "Cliente 1"); | ||
214 | + proxy.setParameter(2, dateValue,TemporalType.DATE); | ||
215 | + | ||
216 | + Assert.assertEquals(proxy.getParameterValue("name"),"Named Parameter"); | ||
217 | + Assert.assertEquals(proxy.getParameterValue(1), "Cliente 1"); | ||
218 | + | ||
219 | + @SuppressWarnings("unchecked") | ||
220 | + List<Map<String, Object>> result = proxy.getResultList(); | ||
221 | + | ||
222 | + Assert.assertNotNull(result); | ||
223 | + Assert.assertFalse(result.isEmpty()); | ||
224 | + | ||
225 | + PowerMock.verifyAll(); | ||
226 | + } | ||
227 | + | ||
228 | + @Test | ||
229 | + public void testFlushMode(){ | ||
230 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(3); | ||
231 | + PowerMock.replay(Beans.class); | ||
232 | + | ||
233 | + manager.getTransaction().begin(); | ||
234 | + QueryProxy proxy = getQueryProxy("update Client set name=?1 where name=?2","Cliente 1 Alterado","Cliente 1"); | ||
235 | + proxy.setFlushMode(FlushModeType.COMMIT); | ||
236 | + Assert.assertEquals(proxy.getFlushMode(), FlushModeType.COMMIT); | ||
237 | + manager.getTransaction().commit(); | ||
238 | + | ||
239 | + PowerMock.verifyAll(); | ||
240 | + } | ||
241 | + | ||
242 | + @Test | ||
243 | + public void testLockMode(){ | ||
244 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(4); | ||
245 | + PowerMock.replay(Beans.class); | ||
246 | + | ||
247 | + manager.getTransaction().begin(); | ||
248 | + QueryProxy proxy = getQueryProxy("update Client set name=?1 where name=?2","Cliente 1 Alterado","Cliente 1"); | ||
249 | + proxy.setLockMode(LockModeType.OPTIMISTIC); | ||
250 | + Assert.assertEquals(proxy.getLockMode(), LockModeType.OPTIMISTIC); | ||
251 | + manager.getTransaction().commit(); | ||
252 | + | ||
253 | + PowerMock.verifyAll(); | ||
254 | + } | ||
255 | +} |
impl/extension/jpa/src/test/java/br/gov/frameworkdemoiselle/internal/proxy/TypedQueryProxyTest.java
0 → 100644
@@ -0,0 +1,244 @@ | @@ -0,0 +1,244 @@ | ||
1 | +package br.gov.frameworkdemoiselle.internal.proxy; | ||
2 | + | ||
3 | +import java.util.Collections; | ||
4 | +import java.util.Date; | ||
5 | +import java.util.HashMap; | ||
6 | +import java.util.List; | ||
7 | +import java.util.Map; | ||
8 | + | ||
9 | +import javax.persistence.EntityManager; | ||
10 | +import javax.persistence.EntityManagerFactory; | ||
11 | +import javax.persistence.FlushModeType; | ||
12 | +import javax.persistence.LockModeType; | ||
13 | +import javax.persistence.NoResultException; | ||
14 | +import javax.persistence.Persistence; | ||
15 | +import javax.persistence.Query; | ||
16 | +import javax.persistence.TemporalType; | ||
17 | +import javax.persistence.TypedQuery; | ||
18 | + | ||
19 | +import org.easymock.EasyMock; | ||
20 | +import org.junit.Assert; | ||
21 | +import org.junit.Before; | ||
22 | +import org.junit.Ignore; | ||
23 | +import org.junit.Test; | ||
24 | +import org.junit.runner.RunWith; | ||
25 | +import org.powermock.api.easymock.PowerMock; | ||
26 | +import org.powermock.core.classloader.annotations.PrepareForTest; | ||
27 | +import org.powermock.modules.junit4.PowerMockRunner; | ||
28 | +import org.powermock.reflect.Whitebox; | ||
29 | + | ||
30 | +import br.gov.frameworkdemoiselle.domain.Client; | ||
31 | +import br.gov.frameworkdemoiselle.internal.producer.EntityManagerProducer; | ||
32 | +import br.gov.frameworkdemoiselle.util.Beans; | ||
33 | + | ||
34 | +/** | ||
35 | + * Test the proxied {@link Query} class, {@link TypedQueryProxy}. | ||
36 | + * @author 81986912515 | ||
37 | + * | ||
38 | + */ | ||
39 | +@Ignore | ||
40 | +@RunWith(PowerMockRunner.class) | ||
41 | +@PrepareForTest({Beans.class}) | ||
42 | +public class TypedQueryProxyTest { | ||
43 | + | ||
44 | + private EntityManager manager; | ||
45 | + private EntityManagerProducer producer; | ||
46 | + | ||
47 | + @Before | ||
48 | + public void setUp(){ | ||
49 | + | ||
50 | + Map<String, Object> configOverrides = new HashMap<String, Object>(); | ||
51 | + configOverrides.put("javax.persistence.provider", "org.hibernate.ejb.HibernatePersistence"); | ||
52 | + configOverrides.put("javax.persistence.jdbc.url", "jdbc:hsqldb:hsql:."); | ||
53 | + configOverrides.put("hibernate.show_sql", "true"); | ||
54 | + configOverrides.put("hibernate.hbm2ddl.auto", "create-drop"); | ||
55 | + | ||
56 | + EntityManagerFactory factory = Persistence.createEntityManagerFactory("pu1", configOverrides); | ||
57 | + EntityManager delegate = factory.createEntityManager(); | ||
58 | + | ||
59 | + Map<String, EntityManager> cache = Collections.synchronizedMap(new HashMap<String, EntityManager>()); | ||
60 | + cache.put("pu1", delegate); | ||
61 | + | ||
62 | + producer = new EntityManagerProducer(); | ||
63 | + Whitebox.setInternalState(producer, "cache", cache); | ||
64 | + | ||
65 | + PowerMock.mockStatic(Beans.class); | ||
66 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(12); | ||
67 | + PowerMock.replayAll(); | ||
68 | + | ||
69 | + manager = new EntityManagerProxy("pu1"); | ||
70 | + | ||
71 | + manager.getTransaction().begin(); | ||
72 | + manager.createQuery("delete from Client").executeUpdate(); | ||
73 | + | ||
74 | + Client client = new Client(); | ||
75 | + client.setName("Cliente 1"); | ||
76 | + client.setBirthDate(new Date()); | ||
77 | + manager.persist(client); | ||
78 | + | ||
79 | + client = new Client(); | ||
80 | + client.setName("Cliente 2"); | ||
81 | + client.setBirthDate(new Date()); | ||
82 | + manager.persist(client); | ||
83 | + | ||
84 | + client = new Client(); | ||
85 | + client.setName("Cliente 3"); | ||
86 | + client.setBirthDate(new Date()); | ||
87 | + manager.persist(client); | ||
88 | + | ||
89 | + manager.flush(); | ||
90 | + manager.getTransaction().commit(); | ||
91 | + manager.clear(); | ||
92 | + | ||
93 | + PowerMock.resetAll(); | ||
94 | + } | ||
95 | + | ||
96 | + private <T> TypedQueryProxy<T> getQueryProxy(String jpql,Class<T> classType,Object... params){ | ||
97 | + TypedQuery<T> q = manager.createQuery(jpql,classType); | ||
98 | + if (!(q instanceof TypedQueryProxy)){ | ||
99 | + Assert.fail("Query não é instância de QueryProxy"); | ||
100 | + } | ||
101 | + | ||
102 | + if (params!=null){ | ||
103 | + int count = 1; | ||
104 | + for (Object param : params){ | ||
105 | + q.setParameter(count++, param); | ||
106 | + } | ||
107 | + } | ||
108 | + | ||
109 | + return (TypedQueryProxy<T>)q; | ||
110 | + } | ||
111 | + | ||
112 | + @Test | ||
113 | + public void testResultList(){ | ||
114 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(2); | ||
115 | + PowerMock.replay(Beans.class); | ||
116 | + | ||
117 | + List<?> retorno = getQueryProxy("select c from Client c",Client.class).getResultList(); | ||
118 | + Assert.assertNotNull(retorno); | ||
119 | + Assert.assertFalse(retorno.isEmpty()); | ||
120 | + } | ||
121 | + | ||
122 | + @Test | ||
123 | + public void testSingleResult(){ | ||
124 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(2); | ||
125 | + PowerMock.replay(Beans.class); | ||
126 | + | ||
127 | + Client retorno = (Client)getQueryProxy("select c from Client c where c.name=?1",Client.class,"Cliente 1").getSingleResult(); | ||
128 | + Assert.assertNotNull(retorno); | ||
129 | + } | ||
130 | + | ||
131 | + @Test | ||
132 | + public void testPagination(){ | ||
133 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(2); | ||
134 | + PowerMock.replay(Beans.class); | ||
135 | + | ||
136 | + TypedQueryProxy<Client> proxy = getQueryProxy("select c from Client c",Client.class); | ||
137 | + | ||
138 | + proxy.setMaxResults(2); | ||
139 | + Assert.assertEquals(2, proxy.getMaxResults()); | ||
140 | + | ||
141 | + proxy.setFirstResult(1); | ||
142 | + Assert.assertEquals(1, proxy.getFirstResult()); | ||
143 | + | ||
144 | + List<?> result = proxy.getResultList(); | ||
145 | + Assert.assertEquals(2, result.size()); | ||
146 | + } | ||
147 | + | ||
148 | + @Test | ||
149 | + public void testHint(){ | ||
150 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(14); | ||
151 | + PowerMock.replay(Beans.class); | ||
152 | + | ||
153 | + //Consulta um cliente definindo a hint readOnly, que torna a entidade retornada não atualizável. | ||
154 | + manager.getTransaction().begin(); | ||
155 | + TypedQueryProxy<Client> proxy = getQueryProxy("select c from Client c where c.name=?1",Client.class,"Cliente 1"); | ||
156 | + proxy.setHint("org.hibernate.readOnly", true); | ||
157 | + Assert.assertFalse( proxy.getHints().isEmpty() ); | ||
158 | + | ||
159 | + //Tenta atualizar a entidade e limpar o cache de primeiro nível | ||
160 | + Client c = (Client)proxy.getSingleResult(); | ||
161 | + c.setName("Cliente 1 Alterado"); | ||
162 | + manager.flush(); | ||
163 | + manager.getTransaction().commit(); | ||
164 | + manager.clear(); | ||
165 | + | ||
166 | + //Reconsultar a entidade tem que retornar 1 resultado, pois o nome "Cliente 1" não deve ter sido alterado. | ||
167 | + manager.getTransaction().begin(); | ||
168 | + proxy = getQueryProxy("select c from Client c where c.name=?1",Client.class,"Cliente 1"); | ||
169 | + c = (Client)proxy.getSingleResult(); | ||
170 | + Assert.assertNotNull(c); | ||
171 | + | ||
172 | + //Mudar a entidade agora tem que funcionar, pois não foi informado o hint | ||
173 | + c.setName("Cliente 1 Alterado"); | ||
174 | + manager.flush(); | ||
175 | + manager.getTransaction().commit(); | ||
176 | + manager.clear(); | ||
177 | + | ||
178 | + proxy = getQueryProxy("select c from Client c where c.name=?1",Client.class,"Cliente 1"); | ||
179 | + | ||
180 | + try{ | ||
181 | + proxy.getSingleResult(); | ||
182 | + Assert.fail(); | ||
183 | + } | ||
184 | + catch(NoResultException ne){ | ||
185 | + } | ||
186 | + | ||
187 | + PowerMock.verifyAll(); | ||
188 | + } | ||
189 | + | ||
190 | + @Test | ||
191 | + public void testParameters(){ | ||
192 | + | ||
193 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(2); | ||
194 | + PowerMock.replay(Beans.class); | ||
195 | + | ||
196 | + TypedQueryProxy<Client> proxy = getQueryProxy("select c from Client c where 'Named Parameter'=:name and c.birthDate=:dateName and c.name=?1 and c.birthDate=?2",Client.class); | ||
197 | + | ||
198 | + Date dateValue = new Date(); | ||
199 | + | ||
200 | + proxy.setParameter("name", "Named Parameter"); | ||
201 | + proxy.setParameter("dateName", dateValue, TemporalType.DATE); | ||
202 | + | ||
203 | + proxy.setParameter(1, "Cliente 1"); | ||
204 | + proxy.setParameter(2, dateValue,TemporalType.DATE); | ||
205 | + | ||
206 | + Assert.assertEquals(proxy.getParameterValue("name"),"Named Parameter"); | ||
207 | + Assert.assertEquals(proxy.getParameterValue(1), "Cliente 1"); | ||
208 | + | ||
209 | + List<Client> result = proxy.getResultList(); | ||
210 | + | ||
211 | + Assert.assertNotNull(result); | ||
212 | + Assert.assertFalse(result.isEmpty()); | ||
213 | + | ||
214 | + PowerMock.verifyAll(); | ||
215 | + } | ||
216 | + | ||
217 | + @Test | ||
218 | + public void testFlushMode(){ | ||
219 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(3); | ||
220 | + PowerMock.replay(Beans.class); | ||
221 | + | ||
222 | + manager.getTransaction().begin(); | ||
223 | + TypedQueryProxy<Client> proxy = getQueryProxy("select c from Client c where c.name=?1",Client.class,"Cliente 1"); | ||
224 | + proxy.setFlushMode(FlushModeType.COMMIT); | ||
225 | + Assert.assertEquals(proxy.getFlushMode(), FlushModeType.COMMIT); | ||
226 | + manager.getTransaction().commit(); | ||
227 | + | ||
228 | + PowerMock.verifyAll(); | ||
229 | + } | ||
230 | + | ||
231 | + @Test | ||
232 | + public void testLockMode(){ | ||
233 | + EasyMock.expect(Beans.getReference(EntityManagerProducer.class)).andReturn(producer).times(3); | ||
234 | + PowerMock.replay(Beans.class); | ||
235 | + | ||
236 | + manager.getTransaction().begin(); | ||
237 | + TypedQueryProxy<Client> proxy = getQueryProxy("select c from Client c where c.name=?1",Client.class,"Cliente 1"); | ||
238 | + proxy.setLockMode(LockModeType.OPTIMISTIC); | ||
239 | + Assert.assertEquals(proxy.getLockMode(), LockModeType.OPTIMISTIC); | ||
240 | + manager.getTransaction().commit(); | ||
241 | + | ||
242 | + PowerMock.verifyAll(); | ||
243 | + } | ||
244 | +} |
impl/extension/jpa/src/test/java/br/gov/frameworkdemoiselle/template/JPACrudTest.java
@@ -35,7 +35,6 @@ | @@ -35,7 +35,6 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.template; | 37 | package br.gov.frameworkdemoiselle.template; |
38 | -import org.junit.Ignore; | ||
39 | import static org.easymock.EasyMock.expect; | 38 | import static org.easymock.EasyMock.expect; |
40 | import static org.easymock.EasyMock.replay; | 39 | import static org.easymock.EasyMock.replay; |
41 | import static org.easymock.EasyMock.verify; | 40 | import static org.easymock.EasyMock.verify; |
@@ -48,13 +47,18 @@ import static org.powermock.reflect.Whitebox.setInternalState; | @@ -48,13 +47,18 @@ import static org.powermock.reflect.Whitebox.setInternalState; | ||
48 | 47 | ||
49 | import java.io.Serializable; | 48 | import java.io.Serializable; |
50 | import java.util.ArrayList; | 49 | import java.util.ArrayList; |
50 | +import java.util.HashMap; | ||
51 | import java.util.List; | 51 | import java.util.List; |
52 | +import java.util.Map; | ||
52 | 53 | ||
53 | import javax.enterprise.inject.Instance; | 54 | import javax.enterprise.inject.Instance; |
54 | import javax.persistence.Column; | 55 | import javax.persistence.Column; |
56 | +import javax.persistence.Entity; | ||
55 | import javax.persistence.EntityManager; | 57 | import javax.persistence.EntityManager; |
58 | +import javax.persistence.EntityManagerFactory; | ||
56 | import javax.persistence.GeneratedValue; | 59 | import javax.persistence.GeneratedValue; |
57 | import javax.persistence.Id; | 60 | import javax.persistence.Id; |
61 | +import javax.persistence.Persistence; | ||
58 | import javax.persistence.Query; | 62 | import javax.persistence.Query; |
59 | import javax.persistence.TransactionRequiredException; | 63 | import javax.persistence.TransactionRequiredException; |
60 | import javax.persistence.TypedQuery; | 64 | import javax.persistence.TypedQuery; |
@@ -63,6 +67,8 @@ import javax.persistence.criteria.CriteriaQuery; | @@ -63,6 +67,8 @@ import javax.persistence.criteria.CriteriaQuery; | ||
63 | import javax.persistence.criteria.Predicate; | 67 | import javax.persistence.criteria.Predicate; |
64 | import javax.persistence.criteria.Root; | 68 | import javax.persistence.criteria.Root; |
65 | 69 | ||
70 | +import junit.framework.Assert; | ||
71 | + | ||
66 | import org.easymock.EasyMock; | 72 | import org.easymock.EasyMock; |
67 | import org.junit.Before; | 73 | import org.junit.Before; |
68 | import org.junit.Test; | 74 | import org.junit.Test; |
@@ -70,16 +76,18 @@ import org.junit.runner.RunWith; | @@ -70,16 +76,18 @@ import org.junit.runner.RunWith; | ||
70 | import org.powermock.api.easymock.PowerMock; | 76 | import org.powermock.api.easymock.PowerMock; |
71 | import org.powermock.core.classloader.annotations.PrepareForTest; | 77 | import org.powermock.core.classloader.annotations.PrepareForTest; |
72 | import org.powermock.modules.junit4.PowerMockRunner; | 78 | import org.powermock.modules.junit4.PowerMockRunner; |
79 | +import org.powermock.reflect.Whitebox; | ||
73 | 80 | ||
74 | import br.gov.frameworkdemoiselle.DemoiselleException; | 81 | import br.gov.frameworkdemoiselle.DemoiselleException; |
75 | import br.gov.frameworkdemoiselle.configuration.Configuration; | 82 | import br.gov.frameworkdemoiselle.configuration.Configuration; |
76 | import br.gov.frameworkdemoiselle.internal.implementation.PaginationImpl; | 83 | import br.gov.frameworkdemoiselle.internal.implementation.PaginationImpl; |
77 | import br.gov.frameworkdemoiselle.pagination.Pagination; | 84 | import br.gov.frameworkdemoiselle.pagination.Pagination; |
78 | import br.gov.frameworkdemoiselle.pagination.PaginationContext; | 85 | import br.gov.frameworkdemoiselle.pagination.PaginationContext; |
86 | +import br.gov.frameworkdemoiselle.util.Beans; | ||
79 | import br.gov.frameworkdemoiselle.util.ResourceBundle; | 87 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
80 | -@Ignore | 88 | + |
81 | @RunWith(PowerMockRunner.class) | 89 | @RunWith(PowerMockRunner.class) |
82 | -@PrepareForTest({ ResourceBundle.class, Instance.class }) | 90 | +@PrepareForTest({ ResourceBundle.class, Instance.class, Beans.class }) |
83 | public class JPACrudTest { | 91 | public class JPACrudTest { |
84 | 92 | ||
85 | private EntityManager entityManager; | 93 | private EntityManager entityManager; |
@@ -102,6 +110,7 @@ public class JPACrudTest { | @@ -102,6 +110,7 @@ public class JPACrudTest { | ||
102 | setInternalState(this.contactDAO, EntityManager.class, this.entityManager); | 110 | setInternalState(this.contactDAO, EntityManager.class, this.entityManager); |
103 | } | 111 | } |
104 | 112 | ||
113 | + @Entity | ||
105 | class Contact implements Serializable { | 114 | class Contact implements Serializable { |
106 | 115 | ||
107 | private static final long serialVersionUID = 1L; | 116 | private static final long serialVersionUID = 1L; |
@@ -144,12 +153,7 @@ public class JPACrudTest { | @@ -144,12 +153,7 @@ public class JPACrudTest { | ||
144 | 153 | ||
145 | Pagination pagination = new PaginationImpl(); | 154 | Pagination pagination = new PaginationImpl(); |
146 | pagination.setPageSize(10); | 155 | pagination.setPageSize(10); |
147 | - PaginationContext actualContext = PowerMock.createMock(PaginationContext.class); | ||
148 | - expect(actualContext.getPagination(Contact.class)).andReturn(pagination); | ||
149 | - @SuppressWarnings("unchecked") | ||
150 | - Instance<PaginationContext> paginationContext = PowerMock.createMock(Instance.class); | ||
151 | - expect(paginationContext.get()).andReturn(actualContext); | ||
152 | - setInternalState(this.contactDAO, "paginationContext", paginationContext); | 156 | + setInternalState(this.contactDAO, "pagination", pagination); |
153 | 157 | ||
154 | TypedQuery<Contact> typeQuery = makeTypedQuery(); | 158 | TypedQuery<Contact> typeQuery = makeTypedQuery(); |
155 | 159 | ||
@@ -157,9 +161,10 @@ public class JPACrudTest { | @@ -157,9 +161,10 @@ public class JPACrudTest { | ||
157 | expect(query.getSingleResult()).andReturn(10L); | 161 | expect(query.getSingleResult()).andReturn(10L); |
158 | 162 | ||
159 | expect(this.entityManager.createQuery("select this from Contact this", Contact.class)).andReturn(typeQuery); | 163 | expect(this.entityManager.createQuery("select this from Contact this", Contact.class)).andReturn(typeQuery); |
160 | - expect(this.entityManager.createQuery("SELECT COUNT(THIS) FROM CONTACT THIS")).andReturn(query); | 164 | + //expect(this.entityManager.createQuery("SELECT COUNT(THIS) FROM CONTACT THIS")).andReturn(query); |
165 | + expect(this.entityManager.createQuery("select COUNT(this) from Contact this")).andReturn(query); | ||
161 | 166 | ||
162 | - replayAll(typeQuery, query, this.entityManager, paginationContext); | 167 | + replayAll(typeQuery, query, this.entityManager); |
163 | 168 | ||
164 | List<Contact> find = this.contactDAO.findAll(); | 169 | List<Contact> find = this.contactDAO.findAll(); |
165 | 170 | ||
@@ -173,12 +178,7 @@ public class JPACrudTest { | @@ -173,12 +178,7 @@ public class JPACrudTest { | ||
173 | public void testFailCountAll() { | 178 | public void testFailCountAll() { |
174 | 179 | ||
175 | Pagination pagination = new PaginationImpl(); | 180 | Pagination pagination = new PaginationImpl(); |
176 | - PaginationContext actualContext = PowerMock.createMock(PaginationContext.class); | ||
177 | - expect(actualContext.getPagination(Contact.class)).andReturn(pagination); | ||
178 | - @SuppressWarnings("unchecked") | ||
179 | - Instance<PaginationContext> paginationContext = PowerMock.createMock(Instance.class); | ||
180 | - expect(paginationContext.get()).andReturn(actualContext); | ||
181 | - setInternalState(this.contactDAO, "paginationContext", paginationContext); | 181 | + setInternalState(this.contactDAO, "pagination", pagination); |
182 | 182 | ||
183 | TypedQuery<Contact> typeQuery = makeTypedQuery(); | 183 | TypedQuery<Contact> typeQuery = makeTypedQuery(); |
184 | 184 | ||
@@ -186,9 +186,9 @@ public class JPACrudTest { | @@ -186,9 +186,9 @@ public class JPACrudTest { | ||
186 | 186 | ||
187 | expect(query.getSingleResult()).andThrow(new DemoiselleException("")); | 187 | expect(query.getSingleResult()).andThrow(new DemoiselleException("")); |
188 | expect(this.entityManager.createQuery("select this from Contact this", Contact.class)).andReturn(typeQuery); | 188 | expect(this.entityManager.createQuery("select this from Contact this", Contact.class)).andReturn(typeQuery); |
189 | - expect(this.entityManager.createQuery("SELECT COUNT(THIS) FROM CONTACT THIS")).andReturn(query); | 189 | + expect(this.entityManager.createQuery("select COUNT(this) from Contact this")).andReturn(query); |
190 | 190 | ||
191 | - replayAll(query, this.entityManager, paginationContext); | 191 | + replayAll(query, this.entityManager); |
192 | 192 | ||
193 | try { | 193 | try { |
194 | this.contactDAO.findAll(); | 194 | this.contactDAO.findAll(); |
@@ -294,12 +294,7 @@ public class JPACrudTest { | @@ -294,12 +294,7 @@ public class JPACrudTest { | ||
294 | 294 | ||
295 | Pagination pagination = new PaginationImpl(); | 295 | Pagination pagination = new PaginationImpl(); |
296 | pagination.setPageSize(10); | 296 | pagination.setPageSize(10); |
297 | - PaginationContext actualContext = PowerMock.createMock(PaginationContext.class); | ||
298 | - expect(actualContext.getPagination(Contact.class)).andReturn(pagination); | ||
299 | - @SuppressWarnings("unchecked") | ||
300 | - Instance<PaginationContext> paginationContext = PowerMock.createMock(Instance.class); | ||
301 | - expect(paginationContext.get()).andReturn(actualContext); | ||
302 | - setInternalState(this.contactDAO, "paginationContext", paginationContext); | 297 | + setInternalState(this.contactDAO, "pagination", pagination); |
303 | 298 | ||
304 | TypedQuery<Contact> typeQuery = makeTypedQuery(); | 299 | TypedQuery<Contact> typeQuery = makeTypedQuery(); |
305 | 300 | ||
@@ -307,9 +302,9 @@ public class JPACrudTest { | @@ -307,9 +302,9 @@ public class JPACrudTest { | ||
307 | expect(query.getSingleResult()).andReturn(10L); | 302 | expect(query.getSingleResult()).andReturn(10L); |
308 | 303 | ||
309 | expect(this.entityManager.createQuery("select this from Contact this", Contact.class)).andReturn(typeQuery); | 304 | expect(this.entityManager.createQuery("select this from Contact this", Contact.class)).andReturn(typeQuery); |
310 | - expect(this.entityManager.createQuery("SELECT COUNT(THIS) FROM CONTACT THIS")).andReturn(query); | 305 | + expect(this.entityManager.createQuery("select COUNT(this) from Contact this")).andReturn(query); |
311 | 306 | ||
312 | - replayAll(typeQuery, query, this.entityManager, paginationContext); | 307 | + replayAll(typeQuery, query, this.entityManager); |
313 | 308 | ||
314 | List<Contact> find = this.contactDAO.findAll(); | 309 | List<Contact> find = this.contactDAO.findAll(); |
315 | 310 | ||
@@ -324,10 +319,12 @@ public class JPACrudTest { | @@ -324,10 +319,12 @@ public class JPACrudTest { | ||
324 | 319 | ||
325 | PaginationContext actualContext = PowerMock.createMock(PaginationContext.class); | 320 | PaginationContext actualContext = PowerMock.createMock(PaginationContext.class); |
326 | expect(actualContext.getPagination(Contact.class)).andReturn(null); | 321 | expect(actualContext.getPagination(Contact.class)).andReturn(null); |
327 | - @SuppressWarnings("unchecked") | 322 | + /*@SuppressWarnings("unchecked") |
328 | Instance<PaginationContext> paginationContext = PowerMock.createMock(Instance.class); | 323 | Instance<PaginationContext> paginationContext = PowerMock.createMock(Instance.class); |
329 | - expect(paginationContext.get()).andReturn(actualContext); | ||
330 | - setInternalState(this.contactDAO, "paginationContext", paginationContext); | 324 | + expect(paginationContext.get()).andReturn(actualContext);*/ |
325 | + | ||
326 | + PowerMock.mockStatic(Beans.class); | ||
327 | + expect(Beans.getReference(PaginationContext.class)).andReturn(actualContext); | ||
331 | 328 | ||
332 | @SuppressWarnings("unchecked") | 329 | @SuppressWarnings("unchecked") |
333 | TypedQuery<Contact> typeQuery = EasyMock.createMock(TypedQuery.class); | 330 | TypedQuery<Contact> typeQuery = EasyMock.createMock(TypedQuery.class); |
@@ -336,7 +333,7 @@ public class JPACrudTest { | @@ -336,7 +333,7 @@ public class JPACrudTest { | ||
336 | Query query = EasyMock.createMock(Query.class); | 333 | Query query = EasyMock.createMock(Query.class); |
337 | expect(this.entityManager.createQuery("select this from Contact this", Contact.class)).andReturn(typeQuery); | 334 | expect(this.entityManager.createQuery("select this from Contact this", Contact.class)).andReturn(typeQuery); |
338 | 335 | ||
339 | - replayAll(typeQuery, query, this.entityManager, paginationContext); | 336 | + replayAll(typeQuery, query, this.entityManager); |
340 | 337 | ||
341 | try { | 338 | try { |
342 | this.contactDAO.findAll(); | 339 | this.contactDAO.findAll(); |
@@ -422,5 +419,40 @@ public class JPACrudTest { | @@ -422,5 +419,40 @@ public class JPACrudTest { | ||
422 | } | 419 | } |
423 | verify(this.entityManager); | 420 | verify(this.entityManager); |
424 | } | 421 | } |
422 | + | ||
423 | + /** | ||
424 | + * Test if the JPACrud will correctly obtain a new entity manager the first | ||
425 | + * time it is called and the entity manager is still null. | ||
426 | + */ | ||
427 | + @Test | ||
428 | + public void testCreateEntityManagerIfNotExist(){ | ||
429 | + PowerMock.mockStatic(Beans.class); | ||
430 | + expect(Beans.getReference(EntityManager.class)).andReturn(entityManager); | ||
431 | + PowerMock.replay(Beans.class); | ||
432 | + | ||
433 | + setInternalState(this.contactDAO, EntityManager.class, (EntityManager)null); | ||
434 | + Assert.assertNotNull(this.contactDAO.getEntityManager()); | ||
435 | + } | ||
436 | + | ||
437 | + @Test | ||
438 | + public void testCriteriaQuery(){ | ||
439 | + Map<String, Object> configOverrides = new HashMap<String, Object>(); | ||
440 | + configOverrides.put("javax.persistence.provider", "org.hibernate.ejb.HibernatePersistence"); | ||
441 | + configOverrides.put("javax.persistence.jdbc.url", "jdbc:hsqldb:hsql:."); | ||
442 | + configOverrides.put("hibernate.show_sql", "true"); | ||
443 | + configOverrides.put("hibernate.hbm2ddl.auto", "create-drop"); | ||
444 | + | ||
445 | + EntityManagerFactory factory = Persistence.createEntityManagerFactory("pu1", configOverrides); | ||
446 | + this.entityManager = factory.createEntityManager(); | ||
447 | + Whitebox.setInternalState(this.contactDAO, EntityManager.class, (EntityManager)null); | ||
448 | + | ||
449 | + PowerMock.mockStatic(Beans.class); | ||
450 | + expect(Beans.getReference(EntityManager.class)).andReturn(entityManager); | ||
451 | + PowerMock.replay(Beans.class); | ||
452 | + | ||
453 | + CriteriaQuery<Contact> query = this.contactDAO.createCriteriaQuery(); | ||
454 | + query.select( query.from(Contact.class) ); | ||
455 | + | ||
456 | + } | ||
425 | 457 | ||
426 | } | 458 | } |
impl/extension/jpa/src/test/java/br/gov/frameworkdemoiselle/transaction/JPATransactionTest.java
@@ -35,7 +35,6 @@ | @@ -35,7 +35,6 @@ | ||
35 | // * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | // * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | // */ | 36 | // */ |
37 | package br.gov.frameworkdemoiselle.transaction; | 37 | package br.gov.frameworkdemoiselle.transaction; |
38 | -import org.junit.Ignore; | ||
39 | import static org.easymock.EasyMock.createMock; | 38 | import static org.easymock.EasyMock.createMock; |
40 | import static org.easymock.EasyMock.expect; | 39 | import static org.easymock.EasyMock.expect; |
41 | import static org.easymock.EasyMock.replay; | 40 | import static org.easymock.EasyMock.replay; |
@@ -62,7 +61,6 @@ import br.gov.frameworkdemoiselle.internal.producer.EntityManagerProducer; | @@ -62,7 +61,6 @@ import br.gov.frameworkdemoiselle.internal.producer.EntityManagerProducer; | ||
62 | * @author SERPRO | 61 | * @author SERPRO |
63 | * @see JPATransaction | 62 | * @see JPATransaction |
64 | */ | 63 | */ |
65 | -@Ignore | ||
66 | public class JPATransactionTest { | 64 | public class JPATransactionTest { |
67 | 65 | ||
68 | private JPATransaction tx; | 66 | private JPATransaction tx; |
impl/extension/jpa/src/test/resources/META-INF/persistence.xml
@@ -42,7 +42,7 @@ | @@ -42,7 +42,7 @@ | ||
42 | <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" /> | 42 | <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" /> |
43 | <property name="javax.persistence.jdbc.user" value="sa" /> | 43 | <property name="javax.persistence.jdbc.user" value="sa" /> |
44 | <property name="javax.persistence.jdbc.password" value="" /> | 44 | <property name="javax.persistence.jdbc.password" value="" /> |
45 | - <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:hsql://localhost:9001/contactlist" /> | 45 | + <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:hsql:." /> |
46 | </properties> | 46 | </properties> |
47 | </persistence-unit> | 47 | </persistence-unit> |
48 | </persistence> | 48 | </persistence> |
49 | \ No newline at end of file | 49 | \ No newline at end of file |
impl/extension/jpa/src/test/resources/persistence-empty-name.xml
0 → 100644
@@ -0,0 +1,48 @@ | @@ -0,0 +1,48 @@ | ||
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!-- | ||
3 | + Demoiselle Framework | ||
4 | + Copyright (C) 2010 SERPRO | ||
5 | + ============================================================================ | ||
6 | + This file is part of Demoiselle Framework. | ||
7 | + | ||
8 | + Demoiselle Framework is free software; you can redistribute it and/or | ||
9 | + modify it under the terms of the GNU Lesser General Public License version 3 | ||
10 | + as published by the Free Software Foundation. | ||
11 | + | ||
12 | + This program is distributed in the hope that it will be useful, | ||
13 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | + GNU General Public License for more details. | ||
16 | + | ||
17 | + You should have received a copy of the GNU Lesser General Public License version 3 | ||
18 | + along with this program; if not, see <http://www.gnu.org/licenses/> | ||
19 | + or write to the Free Software Foundation, Inc., 51 Franklin Street, | ||
20 | + Fifth Floor, Boston, MA 02110-1301, USA. | ||
21 | + ============================================================================ | ||
22 | + Este arquivo é parte do Framework Demoiselle. | ||
23 | + | ||
24 | + O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | ||
25 | + modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | ||
26 | + do Software Livre (FSF). | ||
27 | + | ||
28 | + Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | ||
29 | + GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | ||
30 | + APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | ||
31 | + para maiores detalhes. | ||
32 | + | ||
33 | + Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | ||
34 | + "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | ||
35 | + ou escreva para a Fundação do Software Livre (FSF) Inc., | ||
36 | + 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | ||
37 | +--> | ||
38 | +<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
39 | + xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> | ||
40 | + <persistence-unit name="" transaction-type="RESOURCE_LOCAL"> | ||
41 | + <properties> | ||
42 | + <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" /> | ||
43 | + <property name="javax.persistence.jdbc.user" value="sa" /> | ||
44 | + <property name="javax.persistence.jdbc.password" value="" /> | ||
45 | + <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:hsql://localhost:9001/contactlist" /> | ||
46 | + </properties> | ||
47 | + </persistence-unit> | ||
48 | +</persistence> | ||
0 | \ No newline at end of file | 49 | \ No newline at end of file |
impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/context/ViewContextTest.java
@@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.internal.context; | 37 | package br.gov.frameworkdemoiselle.internal.context; |
38 | -import org.junit.Ignore; | 38 | + |
39 | import static junit.framework.Assert.assertEquals; | 39 | import static junit.framework.Assert.assertEquals; |
40 | 40 | ||
41 | import java.util.Map; | 41 | import java.util.Map; |
@@ -53,7 +53,7 @@ import org.powermock.modules.junit4.PowerMockRunner; | @@ -53,7 +53,7 @@ import org.powermock.modules.junit4.PowerMockRunner; | ||
53 | 53 | ||
54 | import br.gov.frameworkdemoiselle.annotation.ViewScoped; | 54 | import br.gov.frameworkdemoiselle.annotation.ViewScoped; |
55 | import br.gov.frameworkdemoiselle.util.Faces; | 55 | import br.gov.frameworkdemoiselle.util.Faces; |
56 | -@Ignore | 56 | + |
57 | @RunWith(PowerMockRunner.class) | 57 | @RunWith(PowerMockRunner.class) |
58 | @PrepareForTest({ Faces.class }) | 58 | @PrepareForTest({ Faces.class }) |
59 | public class ViewContextTest { | 59 | public class ViewContextTest { |
@@ -142,4 +142,13 @@ public class ViewContextTest { | @@ -142,4 +142,13 @@ public class ViewContextTest { | ||
142 | public void testIsActive() { | 142 | public void testIsActive() { |
143 | assertEquals(true, context.isActive()); | 143 | assertEquals(true, context.isActive()); |
144 | } | 144 | } |
145 | + | ||
146 | + @Test | ||
147 | + public void testSetActive() { | ||
148 | + context.setActive(false); | ||
149 | + assertEquals(false, context.isActive()); | ||
150 | + } | ||
151 | + | ||
145 | } | 152 | } |
153 | + | ||
154 | + |
impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/ApplicationExceptionHandlerFactoryTest.java
@@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.internal.implementation; | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | -import org.junit.Ignore; | 38 | + |
39 | import static junit.framework.Assert.assertEquals; | 39 | import static junit.framework.Assert.assertEquals; |
40 | import static org.easymock.EasyMock.expect; | 40 | import static org.easymock.EasyMock.expect; |
41 | import static org.powermock.api.easymock.PowerMock.replayAll; | 41 | import static org.powermock.api.easymock.PowerMock.replayAll; |
@@ -48,7 +48,7 @@ import org.junit.Test; | @@ -48,7 +48,7 @@ import org.junit.Test; | ||
48 | import org.junit.runner.RunWith; | 48 | import org.junit.runner.RunWith; |
49 | import org.powermock.api.easymock.PowerMock; | 49 | import org.powermock.api.easymock.PowerMock; |
50 | import org.powermock.modules.junit4.PowerMockRunner; | 50 | import org.powermock.modules.junit4.PowerMockRunner; |
51 | -@Ignore | 51 | + |
52 | @RunWith(PowerMockRunner.class) | 52 | @RunWith(PowerMockRunner.class) |
53 | public class ApplicationExceptionHandlerFactoryTest { | 53 | public class ApplicationExceptionHandlerFactoryTest { |
54 | 54 |
impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/AuthenticationExceptionHandlerFactoryTest.java
@@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.internal.implementation; | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | -import org.junit.Ignore; | 38 | + |
39 | import static junit.framework.Assert.assertEquals; | 39 | import static junit.framework.Assert.assertEquals; |
40 | import static org.easymock.EasyMock.expect; | 40 | import static org.easymock.EasyMock.expect; |
41 | import static org.powermock.api.easymock.PowerMock.replayAll; | 41 | import static org.powermock.api.easymock.PowerMock.replayAll; |
@@ -48,13 +48,13 @@ import org.junit.Test; | @@ -48,13 +48,13 @@ import org.junit.Test; | ||
48 | import org.junit.runner.RunWith; | 48 | import org.junit.runner.RunWith; |
49 | import org.powermock.api.easymock.PowerMock; | 49 | import org.powermock.api.easymock.PowerMock; |
50 | import org.powermock.modules.junit4.PowerMockRunner; | 50 | import org.powermock.modules.junit4.PowerMockRunner; |
51 | -@Ignore | 51 | + |
52 | @RunWith(PowerMockRunner.class) | 52 | @RunWith(PowerMockRunner.class) |
53 | public class AuthenticationExceptionHandlerFactoryTest { | 53 | public class AuthenticationExceptionHandlerFactoryTest { |
54 | 54 | ||
55 | @Test | 55 | @Test |
56 | public void testGetExceptionHandler() { | 56 | public void testGetExceptionHandler() { |
57 | - | 57 | + |
58 | ExceptionHandler jsfExceptionHandler = PowerMock.createMock(ExceptionHandler.class); | 58 | ExceptionHandler jsfExceptionHandler = PowerMock.createMock(ExceptionHandler.class); |
59 | 59 | ||
60 | ExceptionHandlerFactory jsfFactory = PowerMock.createMock(ExceptionHandlerFactory.class); | 60 | ExceptionHandlerFactory jsfFactory = PowerMock.createMock(ExceptionHandlerFactory.class); |
@@ -69,7 +69,7 @@ public class AuthenticationExceptionHandlerFactoryTest { | @@ -69,7 +69,7 @@ public class AuthenticationExceptionHandlerFactoryTest { | ||
69 | assertEquals(handler.getWrapped(), jsfExceptionHandler); | 69 | assertEquals(handler.getWrapped(), jsfExceptionHandler); |
70 | 70 | ||
71 | verifyAll(); | 71 | verifyAll(); |
72 | - | 72 | + |
73 | } | 73 | } |
74 | 74 | ||
75 | } | 75 | } |
impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/AuthenticationExceptionHandlerTest.java
1 | -///* | ||
2 | -// * Demoiselle Framework | ||
3 | -// * Copyright (C) 2010 SERPRO | ||
4 | -// * ---------------------------------------------------------------------------- | ||
5 | -// * This file is part of Demoiselle Framework. | ||
6 | -// * | ||
7 | -// * Demoiselle Framework is free software; you can redistribute it and/or | ||
8 | -// * modify it under the terms of the GNU Lesser General Public License version 3 | ||
9 | -// * as published by the Free Software Foundation. | ||
10 | -// * | ||
11 | -// * This program is distributed in the hope that it will be useful, | ||
12 | -// * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | -// * GNU General Public License for more details. | ||
15 | -// * | ||
16 | -// * You should have received a copy of the GNU Lesser General Public License version 3 | ||
17 | -// * along with this program; if not, see <http://www.gnu.org/licenses/> | ||
18 | -// * or write to the Free Software Foundation, Inc., 51 Franklin Street, | ||
19 | -// * Fifth Floor, Boston, MA 02110-1301, USA. | ||
20 | -// * ---------------------------------------------------------------------------- | ||
21 | -// * Este arquivo é parte do Framework Demoiselle. | ||
22 | -// * | ||
23 | -// * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | ||
24 | -// * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | ||
25 | -// * do Software Livre (FSF). | ||
26 | -// * | ||
27 | -// * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | ||
28 | -// * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | ||
29 | -// * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | ||
30 | -// * para maiores detalhes. | ||
31 | -// * | ||
32 | -// * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | ||
33 | -// * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | ||
34 | -// * ou escreva para a Fundação do Software Livre (FSF) Inc., | ||
35 | -// * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | ||
36 | -// */ | ||
37 | -//package br.gov.frameworkdemoiselle.internal.implementation; | ||
38 | -// | ||
39 | -//import static junit.framework.Assert.assertFalse; | ||
40 | -//import static junit.framework.Assert.assertTrue; | ||
41 | -//import static org.easymock.EasyMock.expect; | ||
42 | -//import static org.powermock.api.easymock.PowerMock.createMock; | ||
43 | -//import static org.powermock.api.easymock.PowerMock.expectLastCall; | ||
44 | -//import static org.powermock.api.easymock.PowerMock.mockStatic; | ||
45 | -//import static org.powermock.api.easymock.PowerMock.replayAll; | ||
46 | -//import static org.powermock.api.easymock.PowerMock.verifyAll; | ||
47 | -// | ||
48 | -//import java.util.ArrayList; | ||
49 | -//import java.util.Collection; | ||
50 | -// | ||
51 | -//import javax.faces.context.ExceptionHandler; | ||
52 | -//import javax.faces.event.ExceptionQueuedEvent; | ||
53 | -//import javax.faces.event.ExceptionQueuedEventContext; | ||
54 | -// | ||
55 | -//import org.junit.Before; | ||
56 | -//import org.junit.Test; | ||
57 | -//import org.junit.runner.RunWith; | ||
58 | -//import org.powermock.core.classloader.annotations.PrepareForTest; | ||
59 | -//import org.powermock.modules.junit4.PowerMockRunner; | ||
60 | -// | ||
61 | -//import br.gov.frameworkdemoiselle.security.NotLoggedInException; | ||
62 | -//import br.gov.frameworkdemoiselle.util.Beans; | ||
63 | -// | ||
64 | -//@RunWith(PowerMockRunner.class) | ||
65 | -//@PrepareForTest({ Beans.class, CoreBundle.class }) | ||
66 | -//public class AuthenticationExceptionHandlerTest { | ||
67 | -// | ||
68 | -// private AuthenticationExceptionHandler handler; | ||
69 | -// | ||
70 | -// private ExceptionQueuedEventContext eventContext; | ||
71 | -// | ||
72 | -// private Collection<ExceptionQueuedEvent> events; | ||
73 | -// | ||
74 | -// @Before | ||
75 | -// public void setUp() { | ||
76 | -// | ||
77 | -// mockStatic(Beans.class); | ||
78 | -// | ||
79 | -// events = new ArrayList<ExceptionQueuedEvent>(); | ||
80 | -// ExceptionHandler jsfExceptionHandler = createMock(ExceptionHandler.class); | ||
81 | -// handler = new AuthenticationExceptionHandler(jsfExceptionHandler); | ||
82 | -// eventContext = createMock(ExceptionQueuedEventContext.class); | ||
83 | -// ExceptionQueuedEvent event = createMock(ExceptionQueuedEvent.class); | ||
84 | -// | ||
85 | -// expect(event.getSource()).andReturn(eventContext); | ||
86 | -// expect(handler.getUnhandledExceptionQueuedEvents()).andReturn(events).times(2); | ||
87 | -// | ||
88 | -// events.add(event); | ||
89 | -// | ||
90 | -// } | ||
91 | -// | ||
92 | -// @Test | ||
93 | -// public void testHandleNotLoggedInException() { | ||
94 | -// | ||
95 | -// NotLoggedInException exception = new NotLoggedInException(""); | ||
96 | -// | ||
97 | -// SecurityObserver observer = createMock(SecurityObserver.class); | ||
98 | -// expect(Beans.getReference(SecurityObserver.class)).andReturn(observer); | ||
99 | -// expect(eventContext.getException()).andReturn(exception); | ||
100 | -// | ||
101 | -// observer.redirectToLoginPage(); | ||
102 | -// expectLastCall(); | ||
103 | -// | ||
104 | -// replayAll(); | ||
105 | -// | ||
106 | -// handler.handle(); | ||
107 | -// | ||
108 | -// assertTrue(events.isEmpty()); | ||
109 | -// | ||
110 | -// verifyAll(); | ||
111 | -// | ||
112 | -// } | ||
113 | -// | ||
114 | -// @Test | ||
115 | -// public void testHandleAnyException() { | ||
116 | -// | ||
117 | -// Exception exception = new Exception(); | ||
118 | -// | ||
119 | -// expect(eventContext.getException()).andReturn(exception); | ||
120 | -// | ||
121 | -// handler.getWrapped().handle(); | ||
122 | -// expectLastCall(); | ||
123 | -// | ||
124 | -// replayAll(); | ||
125 | -// | ||
126 | -// handler.handle(); | ||
127 | -// | ||
128 | -// assertFalse(events.isEmpty()); | ||
129 | -// | ||
130 | -// verifyAll(); | ||
131 | -// | ||
132 | -// } | ||
133 | -// | ||
134 | -//} | 1 | +/* |
2 | + * Demoiselle Framework | ||
3 | + * Copyright (C) 2010 SERPRO | ||
4 | + * ---------------------------------------------------------------------------- | ||
5 | + * This file is part of Demoiselle Framework. | ||
6 | + * | ||
7 | + * Demoiselle Framework is free software; you can redistribute it and/or | ||
8 | + * modify it under the terms of the GNU Lesser General Public License version 3 | ||
9 | + * as published by the Free Software Foundation. | ||
10 | + * | ||
11 | + * This program is distributed in the hope that it will be useful, | ||
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | + * GNU General Public License for more details. | ||
15 | + * | ||
16 | + * You should have received a copy of the GNU Lesser General Public License version 3 | ||
17 | + * along with this program; if not, see <http://www.gnu.org/licenses/> | ||
18 | + * or write to the Free Software Foundation, Inc., 51 Franklin Street, | ||
19 | + * Fifth Floor, Boston, MA 02110-1301, USA. | ||
20 | + * ---------------------------------------------------------------------------- | ||
21 | + * Este arquivo é parte do Framework Demoiselle. | ||
22 | + * | ||
23 | + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | ||
24 | + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | ||
25 | + * do Software Livre (FSF). | ||
26 | + * | ||
27 | + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | ||
28 | + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | ||
29 | + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | ||
30 | + * para maiores detalhes. | ||
31 | + * | ||
32 | + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | ||
33 | + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | ||
34 | + * ou escreva para a Fundação do Software Livre (FSF) Inc., | ||
35 | + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | ||
36 | + */ | ||
37 | +package br.gov.frameworkdemoiselle.internal.implementation; | ||
38 | + | ||
39 | +import static junit.framework.Assert.assertFalse; | ||
40 | +import static junit.framework.Assert.assertTrue; | ||
41 | +import static org.easymock.EasyMock.expect; | ||
42 | +import static org.powermock.api.easymock.PowerMock.createMock; | ||
43 | +import static org.powermock.api.easymock.PowerMock.expectLastCall; | ||
44 | +import static org.powermock.api.easymock.PowerMock.mockStatic; | ||
45 | +import static org.powermock.api.easymock.PowerMock.replayAll; | ||
46 | +import static org.powermock.api.easymock.PowerMock.verifyAll; | ||
47 | + | ||
48 | +import java.util.ArrayList; | ||
49 | +import java.util.Collection; | ||
50 | + | ||
51 | +import javax.faces.context.ExceptionHandler; | ||
52 | +import javax.faces.event.ExceptionQueuedEvent; | ||
53 | +import javax.faces.event.ExceptionQueuedEventContext; | ||
54 | + | ||
55 | +import org.junit.Before; | ||
56 | +import org.junit.Test; | ||
57 | +import org.junit.runner.RunWith; | ||
58 | +import org.powermock.core.classloader.annotations.PrepareForTest; | ||
59 | +import org.powermock.modules.junit4.PowerMockRunner; | ||
60 | + | ||
61 | +import br.gov.frameworkdemoiselle.security.NotLoggedInException; | ||
62 | +import br.gov.frameworkdemoiselle.util.Beans; | ||
63 | + | ||
64 | +@RunWith(PowerMockRunner.class) | ||
65 | +@PrepareForTest({ Beans.class}) | ||
66 | +public class AuthenticationExceptionHandlerTest { | ||
67 | + | ||
68 | + private AuthenticationExceptionHandler handler; | ||
69 | + | ||
70 | + private ExceptionQueuedEventContext eventContext; | ||
71 | + | ||
72 | + private Collection<ExceptionQueuedEvent> events; | ||
73 | + | ||
74 | + @Before | ||
75 | + public void setUp() { | ||
76 | + | ||
77 | + mockStatic(Beans.class); | ||
78 | + | ||
79 | + events = new ArrayList<ExceptionQueuedEvent>(); | ||
80 | + ExceptionHandler jsfExceptionHandler = createMock(ExceptionHandler.class); | ||
81 | + handler = new AuthenticationExceptionHandler(jsfExceptionHandler); | ||
82 | + eventContext = createMock(ExceptionQueuedEventContext.class); | ||
83 | + ExceptionQueuedEvent event = createMock(ExceptionQueuedEvent.class); | ||
84 | + | ||
85 | + expect(event.getSource()).andReturn(eventContext); | ||
86 | + expect(handler.getUnhandledExceptionQueuedEvents()).andReturn(events).times(2); | ||
87 | + | ||
88 | + events.add(event); | ||
89 | + | ||
90 | + } | ||
91 | + | ||
92 | + @Test | ||
93 | + public void testHandleNotLoggedInException() { | ||
94 | + | ||
95 | + NotLoggedInException exception = new NotLoggedInException(""); | ||
96 | + | ||
97 | + SecurityObserver observer = createMock(SecurityObserver.class); | ||
98 | + expect(Beans.getReference(SecurityObserver.class)).andReturn(observer); | ||
99 | + expect(eventContext.getException()).andReturn(exception); | ||
100 | + | ||
101 | + observer.redirectToLoginPage(); | ||
102 | + expectLastCall(); | ||
103 | + | ||
104 | + replayAll(); | ||
105 | + | ||
106 | + handler.handle(); | ||
107 | + | ||
108 | + assertTrue(events.isEmpty()); | ||
109 | + | ||
110 | + verifyAll(); | ||
111 | + | ||
112 | + } | ||
113 | + | ||
114 | + @Test | ||
115 | + public void testHandleAnyException() { | ||
116 | + | ||
117 | + Exception exception = new Exception(); | ||
118 | + | ||
119 | + expect(eventContext.getException()).andReturn(exception); | ||
120 | + | ||
121 | + handler.getWrapped().handle(); | ||
122 | + expectLastCall(); | ||
123 | + | ||
124 | + replayAll(); | ||
125 | + | ||
126 | + handler.handle(); | ||
127 | + | ||
128 | + assertFalse(events.isEmpty()); | ||
129 | + | ||
130 | + verifyAll(); | ||
131 | + | ||
132 | + } | ||
133 | + | ||
134 | +} |
impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/AuthorizationExceptionHandlerFactoryTest.java
@@ -48,7 +48,7 @@ import org.junit.Test; | @@ -48,7 +48,7 @@ import org.junit.Test; | ||
48 | import org.junit.runner.RunWith; | 48 | import org.junit.runner.RunWith; |
49 | import org.powermock.api.easymock.PowerMock; | 49 | import org.powermock.api.easymock.PowerMock; |
50 | import org.powermock.modules.junit4.PowerMockRunner; | 50 | import org.powermock.modules.junit4.PowerMockRunner; |
51 | -@Ignore | 51 | + |
52 | @RunWith(PowerMockRunner.class) | 52 | @RunWith(PowerMockRunner.class) |
53 | public class AuthorizationExceptionHandlerFactoryTest { | 53 | public class AuthorizationExceptionHandlerFactoryTest { |
54 | 54 |
impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/MessagePhaseListenerTest.java
@@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.internal.implementation; | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | -import org.junit.Ignore; | 38 | + |
39 | import static org.easymock.EasyMock.expect; | 39 | import static org.easymock.EasyMock.expect; |
40 | import static org.powermock.api.easymock.PowerMock.mockStatic; | 40 | import static org.powermock.api.easymock.PowerMock.mockStatic; |
41 | import static org.powermock.api.easymock.PowerMock.replayAll; | 41 | import static org.powermock.api.easymock.PowerMock.replayAll; |
@@ -62,7 +62,7 @@ import br.gov.frameworkdemoiselle.message.Message; | @@ -62,7 +62,7 @@ import br.gov.frameworkdemoiselle.message.Message; | ||
62 | import br.gov.frameworkdemoiselle.message.MessageContext; | 62 | import br.gov.frameworkdemoiselle.message.MessageContext; |
63 | import br.gov.frameworkdemoiselle.util.Beans; | 63 | import br.gov.frameworkdemoiselle.util.Beans; |
64 | import br.gov.frameworkdemoiselle.util.Faces; | 64 | import br.gov.frameworkdemoiselle.util.Faces; |
65 | -@Ignore | 65 | + |
66 | @RunWith(PowerMockRunner.class) | 66 | @RunWith(PowerMockRunner.class) |
67 | @PrepareForTest({ LoggerProducer.class, Beans.class, Faces.class }) | 67 | @PrepareForTest({ LoggerProducer.class, Beans.class, Faces.class }) |
68 | public class MessagePhaseListenerTest { | 68 | public class MessagePhaseListenerTest { |
impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/RedirectExceptionHandlerFactoryTest.java
@@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.internal.implementation; | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | -import org.junit.Ignore; | 38 | + |
39 | import static junit.framework.Assert.assertEquals; | 39 | import static junit.framework.Assert.assertEquals; |
40 | import static org.easymock.EasyMock.expect; | 40 | import static org.easymock.EasyMock.expect; |
41 | import static org.powermock.api.easymock.PowerMock.replayAll; | 41 | import static org.powermock.api.easymock.PowerMock.replayAll; |
@@ -48,13 +48,13 @@ import org.junit.Test; | @@ -48,13 +48,13 @@ import org.junit.Test; | ||
48 | import org.junit.runner.RunWith; | 48 | import org.junit.runner.RunWith; |
49 | import org.powermock.api.easymock.PowerMock; | 49 | import org.powermock.api.easymock.PowerMock; |
50 | import org.powermock.modules.junit4.PowerMockRunner; | 50 | import org.powermock.modules.junit4.PowerMockRunner; |
51 | -@Ignore | 51 | + |
52 | @RunWith(PowerMockRunner.class) | 52 | @RunWith(PowerMockRunner.class) |
53 | public class RedirectExceptionHandlerFactoryTest { | 53 | public class RedirectExceptionHandlerFactoryTest { |
54 | 54 | ||
55 | @Test | 55 | @Test |
56 | public void testGetExceptionHandler() { | 56 | public void testGetExceptionHandler() { |
57 | - | 57 | + |
58 | ExceptionHandler jsfExceptionHandler = PowerMock.createMock(ExceptionHandler.class); | 58 | ExceptionHandler jsfExceptionHandler = PowerMock.createMock(ExceptionHandler.class); |
59 | 59 | ||
60 | ExceptionHandlerFactory jsfFactory = PowerMock.createMock(ExceptionHandlerFactory.class); | 60 | ExceptionHandlerFactory jsfFactory = PowerMock.createMock(ExceptionHandlerFactory.class); |
@@ -69,7 +69,7 @@ public class RedirectExceptionHandlerFactoryTest { | @@ -69,7 +69,7 @@ public class RedirectExceptionHandlerFactoryTest { | ||
69 | assertEquals(handler.getWrapped(), jsfExceptionHandler); | 69 | assertEquals(handler.getWrapped(), jsfExceptionHandler); |
70 | 70 | ||
71 | verifyAll(); | 71 | verifyAll(); |
72 | - | 72 | + |
73 | } | 73 | } |
74 | 74 | ||
75 | } | 75 | } |
impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/RedirectExceptionHandlerTest.java
@@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.internal.implementation; | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | -import org.junit.Ignore; | 38 | + |
39 | import static junit.framework.Assert.assertFalse; | 39 | import static junit.framework.Assert.assertFalse; |
40 | import static junit.framework.Assert.assertTrue; | 40 | import static junit.framework.Assert.assertTrue; |
41 | import static org.easymock.EasyMock.expect; | 41 | import static org.easymock.EasyMock.expect; |
@@ -57,7 +57,7 @@ import org.junit.runner.RunWith; | @@ -57,7 +57,7 @@ import org.junit.runner.RunWith; | ||
57 | import org.powermock.modules.junit4.PowerMockRunner; | 57 | import org.powermock.modules.junit4.PowerMockRunner; |
58 | 58 | ||
59 | import br.gov.frameworkdemoiselle.annotation.Redirect; | 59 | import br.gov.frameworkdemoiselle.annotation.Redirect; |
60 | -@Ignore | 60 | + |
61 | @RunWith(PowerMockRunner.class) | 61 | @RunWith(PowerMockRunner.class) |
62 | public class RedirectExceptionHandlerTest { | 62 | public class RedirectExceptionHandlerTest { |
63 | 63 | ||
@@ -66,7 +66,7 @@ public class RedirectExceptionHandlerTest { | @@ -66,7 +66,7 @@ public class RedirectExceptionHandlerTest { | ||
66 | private ExceptionQueuedEventContext eventContext; | 66 | private ExceptionQueuedEventContext eventContext; |
67 | 67 | ||
68 | private Collection<ExceptionQueuedEvent> events; | 68 | private Collection<ExceptionQueuedEvent> events; |
69 | - | 69 | + |
70 | @SuppressWarnings("serial") | 70 | @SuppressWarnings("serial") |
71 | @Redirect | 71 | @Redirect |
72 | class AnnotatedException extends RuntimeException { | 72 | class AnnotatedException extends RuntimeException { |
@@ -86,18 +86,18 @@ public class RedirectExceptionHandlerTest { | @@ -86,18 +86,18 @@ public class RedirectExceptionHandlerTest { | ||
86 | expect(handler.getUnhandledExceptionQueuedEvents()).andReturn(events).times(2); | 86 | expect(handler.getUnhandledExceptionQueuedEvents()).andReturn(events).times(2); |
87 | 87 | ||
88 | } | 88 | } |
89 | - | 89 | + |
90 | @Test | 90 | @Test |
91 | public void testHandleAnAnnotatedException() { | 91 | public void testHandleAnAnnotatedException() { |
92 | 92 | ||
93 | AnnotatedException exception = new AnnotatedException(); | 93 | AnnotatedException exception = new AnnotatedException(); |
94 | - | 94 | + |
95 | expect(eventContext.getException()).andReturn(exception); | 95 | expect(eventContext.getException()).andReturn(exception); |
96 | - | 96 | + |
97 | replayAll(); | 97 | replayAll(); |
98 | 98 | ||
99 | handler.handle(); | 99 | handler.handle(); |
100 | - | 100 | + |
101 | assertTrue(events.isEmpty()); | 101 | assertTrue(events.isEmpty()); |
102 | 102 | ||
103 | verifyAll(); | 103 | verifyAll(); |
@@ -108,16 +108,16 @@ public class RedirectExceptionHandlerTest { | @@ -108,16 +108,16 @@ public class RedirectExceptionHandlerTest { | ||
108 | public void testHandleAnyException() { | 108 | public void testHandleAnyException() { |
109 | 109 | ||
110 | Exception exception = new Exception(); | 110 | Exception exception = new Exception(); |
111 | - | 111 | + |
112 | expect(eventContext.getException()).andReturn(exception); | 112 | expect(eventContext.getException()).andReturn(exception); |
113 | - | 113 | + |
114 | handler.getWrapped().handle(); | 114 | handler.getWrapped().handle(); |
115 | expectLastCall(); | 115 | expectLastCall(); |
116 | - | 116 | + |
117 | replayAll(); | 117 | replayAll(); |
118 | 118 | ||
119 | handler.handle(); | 119 | handler.handle(); |
120 | - | 120 | + |
121 | assertFalse(events.isEmpty()); | 121 | assertFalse(events.isEmpty()); |
122 | 122 | ||
123 | verifyAll(); | 123 | verifyAll(); |
impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractListPageBeanTest.java
@@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 35 | * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
36 | */ | 36 | */ |
37 | package br.gov.frameworkdemoiselle.template; | 37 | package br.gov.frameworkdemoiselle.template; |
38 | -import org.junit.Ignore; | 38 | + |
39 | import static org.easymock.EasyMock.expect; | 39 | import static org.easymock.EasyMock.expect; |
40 | import static org.junit.Assert.assertEquals; | 40 | import static org.junit.Assert.assertEquals; |
41 | import static org.junit.Assert.assertNull; | 41 | import static org.junit.Assert.assertNull; |
@@ -62,7 +62,7 @@ import br.gov.frameworkdemoiselle.internal.implementation.PaginationImpl; | @@ -62,7 +62,7 @@ import br.gov.frameworkdemoiselle.internal.implementation.PaginationImpl; | ||
62 | import br.gov.frameworkdemoiselle.pagination.Pagination; | 62 | import br.gov.frameworkdemoiselle.pagination.Pagination; |
63 | import br.gov.frameworkdemoiselle.pagination.PaginationContext; | 63 | import br.gov.frameworkdemoiselle.pagination.PaginationContext; |
64 | import br.gov.frameworkdemoiselle.util.Reflections; | 64 | import br.gov.frameworkdemoiselle.util.Reflections; |
65 | -@Ignore | 65 | + |
66 | @RunWith(PowerMockRunner.class) | 66 | @RunWith(PowerMockRunner.class) |
67 | @PrepareForTest({ Reflections.class, PaginationContext.class, Pagination.class }) | 67 | @PrepareForTest({ Reflections.class, PaginationContext.class, Pagination.class }) |
68 | public class AbstractListPageBeanTest { | 68 | public class AbstractListPageBeanTest { |
impl/extension/jta/src/test/java/br/gov/frameworkdemoiselle/transaction/JTATransactionTest.java
1 | package br.gov.frameworkdemoiselle.transaction; | 1 | package br.gov.frameworkdemoiselle.transaction; |
2 | -import org.junit.Ignore; | 2 | + |
3 | import static org.easymock.EasyMock.createMock; | 3 | import static org.easymock.EasyMock.createMock; |
4 | import static org.easymock.EasyMock.expect; | 4 | import static org.easymock.EasyMock.expect; |
5 | import static org.easymock.EasyMock.expectLastCall; | 5 | import static org.easymock.EasyMock.expectLastCall; |
@@ -25,7 +25,7 @@ import org.powermock.core.classloader.annotations.PrepareForTest; | @@ -25,7 +25,7 @@ import org.powermock.core.classloader.annotations.PrepareForTest; | ||
25 | import org.powermock.modules.junit4.PowerMockRunner; | 25 | import org.powermock.modules.junit4.PowerMockRunner; |
26 | 26 | ||
27 | import br.gov.frameworkdemoiselle.util.Beans; | 27 | import br.gov.frameworkdemoiselle.util.Beans; |
28 | -@Ignore | 28 | + |
29 | @RunWith(PowerMockRunner.class) | 29 | @RunWith(PowerMockRunner.class) |
30 | @PrepareForTest({ Beans.class }) | 30 | @PrepareForTest({ Beans.class }) |
31 | public class JTATransactionTest { | 31 | public class JTATransactionTest { |
impl/extension/se/src/test/java/br/gov/frameworkdemoiselle/internal/producer/SeLocaleProducerTest.java
@@ -5,7 +5,7 @@ import java.util.Locale; | @@ -5,7 +5,7 @@ import java.util.Locale; | ||
5 | import junit.framework.Assert; | 5 | import junit.framework.Assert; |
6 | 6 | ||
7 | import org.junit.Test; | 7 | import org.junit.Test; |
8 | -@Ignore | 8 | + |
9 | public class SeLocaleProducerTest { | 9 | public class SeLocaleProducerTest { |
10 | 10 | ||
11 | @Test | 11 | @Test |