Skip to content

Commit 9802287

Browse files
Moving all Spock tests into a separate project in extras
Replacing previous Spock tests with standard jUnit tests
1 parent e15ffd5 commit 9802287

File tree

8 files changed

+300
-111
lines changed

8 files changed

+300
-111
lines changed

extra/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<module>quartz</module>
2121
<module>twitter-search</module>
2222
<module>webjars</module>
23+
<module>spock-tests</module>
2324
</modules>
2425
<dependencies>
2526
<dependency>

extra/spock-tests/pom.xml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<groupId>org.javaee7.extra</groupId>
7+
<artifactId>extra-samples</artifactId>
8+
<version>1.0-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<artifactId>spock-tests</artifactId>
13+
14+
<dependencies>
15+
<dependency>
16+
<groupId>org.javaee7</groupId>
17+
<artifactId>jpa-listeners-injection</artifactId>
18+
<version>${project.version}</version>
19+
<classifier>classes</classifier>
20+
<scope>test</scope>
21+
</dependency>
22+
<dependency>
23+
<groupId>org.javaee7</groupId>
24+
<artifactId>jpa-extended-pc</artifactId>
25+
<version>${project.version}</version>
26+
<classifier>classes</classifier>
27+
<scope>test</scope>
28+
</dependency>
29+
<dependency>
30+
<groupId>org.javaee7</groupId>
31+
<artifactId>servlet-servlet-filters</artifactId>
32+
<version>${project.version}</version>
33+
<classifier>classes</classifier>
34+
<scope>test</scope>
35+
</dependency>
36+
</dependencies>
37+
38+
</project>
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,66 @@
1-
package org.javaee7.jpa.extended.pc
2-
3-
import org.jboss.arquillian.container.test.api.Deployment
4-
import org.jboss.arquillian.spock.ArquillianSputnik
5-
import org.jboss.shrinkwrap.api.ShrinkWrap
6-
import org.jboss.shrinkwrap.api.spec.WebArchive
7-
import org.junit.runner.RunWith
8-
import spock.lang.Specification
9-
10-
import javax.ejb.EJB
11-
import javax.persistence.EntityManager
12-
import javax.persistence.PersistenceContext
13-
14-
/**
15-
* @author Kuba Marchwicki
16-
*/
17-
@RunWith(ArquillianSputnik)
18-
class ExtendedPersistenceContextSpecification extends Specification {
19-
20-
@PersistenceContext
21-
EntityManager em;
22-
23-
@EJB
24-
CharactersBean bean;
25-
26-
@Deployment
27-
def static WebArchive deploy() {
28-
ShrinkWrap.create(WebArchive.class)
29-
.addPackage("org.javaee7.jpa.extended.pc")
30-
.addAsResource("META-INF/persistence.xml")
31-
.addAsResource("META-INF/create.sql")
32-
.addAsResource("META-INF/drop.sql")
33-
.addAsResource("META-INF/load.sql")
34-
}
35-
36-
def setup() {
37-
Character wil = new Character(8, "Wil Wheaton")
38-
bean.save(wil)
39-
40-
for (Character c : bean.get()) {
41-
if ("Raj".equals(c.getName())) {
42-
c.setName("Rajesh Ramayan")
43-
bean.save(c)
44-
}
45-
}
46-
}
47-
48-
def "should not persist changes without transaction flush"() {
49-
expect:
50-
7 == em.createNamedQuery(Character.FIND_ALL, Character.class).getResultList().size();
51-
"Raj" == em.find(Character.class, 6).name
52-
}
53-
54-
def "should update characters after transaction flush"() {
55-
when:
56-
bean.commitChanges()
57-
58-
then:
59-
8 == em.createNamedQuery(Character.FIND_ALL, Character.class).getResultList().size();
60-
"Rajesh Ramayan" == em.find(Character.class, 6).name
61-
"Wil Wheaton" == em.find(Character.class, 8).name
62-
}
63-
}
1+
package org.javaee7.jpa.extended.pc
2+
3+
import org.javaee7.jpa.extended.pc.Character
4+
import org.javaee7.jpa.extended.pc.CharactersBean
5+
import org.jboss.arquillian.container.test.api.Deployment
6+
import org.jboss.arquillian.spock.ArquillianSputnik
7+
import org.jboss.shrinkwrap.api.ShrinkWrap
8+
import org.jboss.shrinkwrap.api.spec.WebArchive
9+
import org.junit.runner.RunWith
10+
import spock.lang.Specification
11+
12+
import javax.ejb.EJB
13+
import javax.persistence.EntityManager
14+
import javax.persistence.PersistenceContext
15+
16+
import static org.jboss.shrinkwrap.resolver.api.maven.Maven.resolver
17+
18+
/**
19+
* @author Kuba Marchwicki
20+
*/
21+
@RunWith(ArquillianSputnik)
22+
class ExtendedPersistenceContextSpecification extends Specification {
23+
24+
@PersistenceContext
25+
EntityManager em;
26+
27+
@EJB
28+
CharactersBean bean;
29+
30+
@Deployment
31+
def static WebArchive deploy() {
32+
ShrinkWrap.create(WebArchive.class)
33+
.addAsLibraries(
34+
resolver().resolve("org.javaee7:jpa-extended-pc:jar:classes:1.0-SNAPSHOT")
35+
.withTransitivity().asFile()
36+
);
37+
}
38+
39+
def setup() {
40+
Character wil = new Character(8, "Wil Wheaton")
41+
bean.save(wil)
42+
43+
for (Character c : bean.get()) {
44+
if ("Raj".equals(c.getName())) {
45+
c.setName("Rajesh Ramayan")
46+
bean.save(c)
47+
}
48+
}
49+
}
50+
51+
def "should not persist changes without transaction flush"() {
52+
expect:
53+
7 == em.createNamedQuery(Character.FIND_ALL, Character.class).getResultList().size();
54+
"Raj" == em.find(Character.class, 6).name
55+
}
56+
57+
def "should update characters after transaction flush"() {
58+
when:
59+
bean.commitChanges()
60+
61+
then:
62+
8 == em.createNamedQuery(Character.FIND_ALL, Character.class).getResultList().size();
63+
"Rajesh Ramayan" == em.find(Character.class, 6).name
64+
"Wil Wheaton" == em.find(Character.class, 8).name
65+
}
66+
}
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,43 @@
1-
package org.javaee7.jpa.listeners
2-
3-
import org.jboss.arquillian.container.test.api.Deployment
4-
import org.jboss.arquillian.spock.ArquillianSputnik
5-
import org.jboss.shrinkwrap.api.ShrinkWrap
6-
import org.jboss.shrinkwrap.api.spec.WebArchive
7-
import org.junit.runner.RunWith
8-
import spock.lang.Specification
9-
import spock.lang.Unroll
10-
11-
import javax.inject.Inject
12-
13-
@RunWith(ArquillianSputnik)
14-
class JpaListenerInjectionSpecification extends Specification {
15-
16-
@Deployment
17-
def static WebArchive "create deployment"() {
18-
ShrinkWrap.create(WebArchive.class)
19-
.addPackage("org.javaee7.jpa.listeners")
20-
.addAsResource("META-INF/persistence.xml")
21-
.addAsResource("META-INF/create.sql")
22-
.addAsResource("META-INF/drop.sql")
23-
.addAsResource("META-INF/load.sql");
24-
}
25-
26-
@Inject
27-
MovieBean bean;
28-
29-
@Unroll("should provide a movie rating of #rating for movie #name")
30-
def "provide movie rating via jpa listener injection"() {
31-
expect:
32-
rating == bean.getMovieByName(name).rating
33-
34-
where:
35-
name | rating
36-
"The Matrix" | 60
37-
"The Lord of The Rings" | 70
38-
"Inception" | 80
39-
"The Shining" | 90
40-
}
41-
42-
}
1+
package org.javaee7.jpa.listeners
2+
3+
import org.jboss.arquillian.container.test.api.Deployment
4+
import org.jboss.arquillian.spock.ArquillianSputnik
5+
import org.jboss.shrinkwrap.api.ShrinkWrap
6+
import org.jboss.shrinkwrap.api.spec.WebArchive
7+
import org.junit.runner.RunWith
8+
import spock.lang.Specification
9+
import spock.lang.Unroll
10+
11+
import javax.inject.Inject
12+
13+
import static org.jboss.shrinkwrap.resolver.api.maven.Maven.resolver;
14+
15+
@RunWith(ArquillianSputnik)
16+
class JpaListenerInjectionSpecification extends Specification {
17+
18+
@Deployment
19+
def static WebArchive "create deployment"() {
20+
ShrinkWrap.create(WebArchive.class)
21+
.addAsLibraries(
22+
resolver().resolve("org.javaee7:jpa-listeners-injection:jar:classes:1.0-SNAPSHOT")
23+
.withTransitivity().asFile()
24+
);
25+
}
26+
27+
@Inject
28+
MovieBean bean;
29+
30+
@Unroll("should provide a movie rating of #rating for movie #name")
31+
def "provide movie rating via jpa listener injection"() {
32+
expect:
33+
rating == bean.getMovieByName(name).rating
34+
35+
where:
36+
name | rating
37+
"The Matrix" | 60
38+
"The Lord of The Rings" | 70
39+
"Inception" | 80
40+
"The Shining" | 90
41+
}
42+
43+
}
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
package org.javaee7.servlet.filters
22

3-
import javax.ws.rs.client.Client
4-
import javax.ws.rs.client.ClientBuilder
5-
import javax.ws.rs.client.WebTarget
6-
import javax.ws.rs.core.Response
7-
83
import org.jboss.arquillian.container.test.api.Deployment
94
import org.jboss.arquillian.spock.ArquillianSputnik
105
import org.jboss.arquillian.test.api.ArquillianResource
116
import org.jboss.shrinkwrap.api.ShrinkWrap
127
import org.jboss.shrinkwrap.api.spec.WebArchive
138
import org.junit.runner.RunWith
14-
159
import spock.lang.Specification
1610

11+
import javax.ws.rs.client.Client
12+
import javax.ws.rs.client.ClientBuilder
13+
import javax.ws.rs.client.WebTarget
14+
import javax.ws.rs.core.Response
15+
1716
@RunWith(ArquillianSputnik)
1817
class FilterServletSpecification extends Specification{
1918

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package org.javaee7.jpa.extended.pc;
2+
3+
import org.jboss.arquillian.container.test.api.Deployment;
4+
import org.jboss.arquillian.junit.Arquillian;
5+
import org.jboss.arquillian.junit.InSequence;
6+
import org.jboss.shrinkwrap.api.ShrinkWrap;
7+
import org.jboss.shrinkwrap.api.spec.WebArchive;
8+
import org.junit.Before;
9+
import org.junit.Test;
10+
import org.junit.runner.RunWith;
11+
12+
import javax.ejb.EJB;
13+
import javax.persistence.EntityManager;
14+
import javax.persistence.PersistenceContext;
15+
import java.util.List;
16+
17+
import static org.hamcrest.CoreMatchers.equalTo;
18+
import static org.hamcrest.CoreMatchers.is;
19+
import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
20+
import static org.junit.Assert.assertThat;
21+
22+
@RunWith(Arquillian.class)
23+
public class ExtendedPersistenceContextTest {
24+
25+
@PersistenceContext
26+
EntityManager em;
27+
28+
@EJB
29+
CharactersBean bean;
30+
31+
@Deployment
32+
public static WebArchive deploy() {
33+
return ShrinkWrap.create(WebArchive.class)
34+
.addPackage("org.javaee7.jpa.extended.pc")
35+
.addAsResource("META-INF/persistence.xml")
36+
.addAsResource("META-INF/create.sql")
37+
.addAsResource("META-INF/drop.sql")
38+
.addAsResource("META-INF/load.sql");
39+
}
40+
41+
@Before
42+
public void setup() {
43+
Character wil = new Character(8, "Wil Wheaton");
44+
bean.save(wil);
45+
46+
for (Character c : bean.get()) {
47+
if ("Raj".equals(c.getName())) {
48+
c.setName("Rajesh Ramayan");
49+
bean.save(c);
50+
}
51+
}
52+
}
53+
54+
@Test
55+
@InSequence(1)
56+
public void should_not_persist_changes_without_transaction_flush() {
57+
List<Character> characters = em.createNamedQuery(Character.FIND_ALL, Character.class).getResultList();
58+
Character raj = em.find(Character.class, 6);
59+
60+
assertThat(characters, hasSize(7));
61+
assertThat(raj.getName(), is(equalTo("Raj")));
62+
}
63+
64+
@Test
65+
@InSequence(2)
66+
public void should_update_characters_after_transaction_flush() {
67+
//when
68+
bean.commitChanges();
69+
70+
//then
71+
List<Character> characters = em.createNamedQuery(Character.FIND_ALL, Character.class).getResultList();
72+
Character rajesh = em.find(Character.class, 6);
73+
Character wil = em.find(Character.class, 8);
74+
75+
assertThat(characters, hasSize(8));
76+
assertThat(rajesh.getName(), is(equalTo("Rajesh Ramayan")));
77+
assertThat(wil.getName(), is(equalTo("Wil Wheaton")));
78+
}
79+
80+
81+
}

0 commit comments

Comments
 (0)