Skip to content

Commit 8eba3db

Browse files
committed
Merge pull request #187 from rhanus/master
added simple CDI event/observer test
2 parents 6275165 + 5557fb5 commit 8eba3db

File tree

9 files changed

+144
-0
lines changed

9 files changed

+144
-0
lines changed

cdi/events/pom.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<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/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<parent>
5+
<groupId>org.javaee7.cdi</groupId>
6+
<artifactId>cdi-samples</artifactId>
7+
<version>1.0-SNAPSHOT</version>
8+
<relativePath>../pom.xml</relativePath>
9+
</parent>
10+
11+
<artifactId>events</artifactId>
12+
</project>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package org.javaee7.cdi.events;
2+
3+
/**
4+
* @author Radim Hanus
5+
*/
6+
public interface EventReceiver {
7+
String getGreet();
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package org.javaee7.cdi.events;
2+
3+
/**
4+
* @author Radim Hanus
5+
*/
6+
public interface EventSender {
7+
void send(String message);
8+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.javaee7.cdi.events;
2+
3+
import javax.enterprise.context.SessionScoped;
4+
import javax.enterprise.event.Observes;
5+
import java.io.Serializable;
6+
7+
/**
8+
* @author Radim Hanus
9+
*/
10+
@SessionScoped
11+
public class GreetingReceiver implements EventReceiver, Serializable {
12+
private String greet = "Willkommen";
13+
14+
void receive(@Observes String greet) {
15+
this.greet = greet;
16+
}
17+
18+
@Override
19+
public String getGreet() {
20+
return greet;
21+
}
22+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.javaee7.cdi.events;
2+
3+
import javax.enterprise.event.Event;
4+
import javax.inject.Inject;
5+
6+
/**
7+
* @author Radim Hanus
8+
*/
9+
public class GreetingSender implements EventSender {
10+
@Inject
11+
private Event<String> event;
12+
13+
@Override
14+
public void send(String message) {
15+
event.fire(message);
16+
}
17+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package org.javaee7.cdi.events;
2+
3+
import org.jboss.arquillian.container.test.api.Deployment;
4+
import org.jboss.arquillian.junit.Arquillian;
5+
import org.jboss.shrinkwrap.api.Archive;
6+
import org.jboss.shrinkwrap.api.ShrinkWrap;
7+
import org.jboss.shrinkwrap.api.spec.JavaArchive;
8+
import org.junit.Test;
9+
import org.junit.runner.RunWith;
10+
11+
import javax.inject.Inject;
12+
13+
import static org.hamcrest.CoreMatchers.instanceOf;
14+
import static org.hamcrest.CoreMatchers.is;
15+
import static org.hamcrest.CoreMatchers.notNullValue;
16+
import static org.junit.Assert.assertEquals;
17+
import static org.junit.Assert.assertThat;
18+
19+
/**
20+
* @author Radim Hanus
21+
*/
22+
@RunWith(Arquillian.class)
23+
public class GreetingTest {
24+
@Deployment
25+
public static Archive<?> deploy() {
26+
return ShrinkWrap.create(JavaArchive.class)
27+
.addClasses(EventReceiver.class, EventSender.class, GreetingReceiver.class, GreetingSender.class)
28+
.addAsManifestResource("beans.xml");
29+
}
30+
31+
@Inject
32+
private EventSender sender;
33+
34+
@Inject
35+
private EventReceiver receiver;
36+
37+
@Test
38+
public void test() throws Exception {
39+
assertThat(sender, is(notNullValue()));
40+
assertThat(sender, instanceOf(GreetingSender.class));
41+
42+
assertThat(receiver, is(notNullValue()));
43+
assertThat(receiver, instanceOf(GreetingReceiver.class));
44+
45+
// default greet
46+
assertEquals("Willkommen", receiver.getGreet());
47+
// send a new greet
48+
sender.send("Welcome");
49+
// receiver must not belongs to the dependent pseudo-scope since we are checking the result
50+
assertEquals("Welcome", receiver.getGreet());
51+
}
52+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns="http://jboss.org/schema/arquillian"
5+
xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
6+
7+
<defaultProtocol type="Servlet 3.0"/>
8+
9+
<container qualifier="test" default="true">
10+
<configuration>
11+
<property name="jbossHome">${serverRoot:target/wildfly-8.0.0.CR1}</property>
12+
<property name="serverConfig">${serverProfile:standalone-full.xml}</property>
13+
</configuration>
14+
</container>
15+
16+
</arquillian>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
6+
bean-discovery-mode="all">
7+
8+
</beans>

cdi/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,6 @@
3434
<module>alternatives-priority</module>
3535
<module>nobeans-el-injection</module>
3636
<module>nobeans-el-injection-flowscoped</module>
37+
<module>events</module>
3738
</modules>
3839
</project>

0 commit comments

Comments
 (0)