Removed 'unit test' code from MessageListener. Cleaned up MetadataReaderTest
This commit is contained in:
parent
f509bfe57f
commit
7f48f9eeed
@ -68,20 +68,6 @@ public class MessageListener<T> {
|
|||||||
return handlers;
|
return handlers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MessageHandler> getHandlers(IPredicate<MessageHandler> filter) {
|
|
||||||
List<MessageHandler> matching = new LinkedList<MessageHandler>();
|
|
||||||
for (MessageHandler handler : handlers) {
|
|
||||||
if (filter.apply(handler)) {
|
|
||||||
matching.add(handler);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return matching;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean handles(Class<?> messageType) {
|
|
||||||
return !getHandlers(ForMessage(messageType)).isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Class<T> getListerDefinition() {
|
public Class<T> getListerDefinition() {
|
||||||
return listenerDefinition;
|
return listenerDefinition;
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,23 @@
|
|||||||
package net.engio.mbassy;
|
package net.engio.mbassy;
|
||||||
|
|
||||||
import net.engio.mbassy.common.AssertSupport;
|
import static net.engio.mbassy.listener.MessageListener.ForMessage;
|
||||||
import net.engio.mbassy.listener.MessageListener;
|
|
||||||
import org.junit.Test;
|
|
||||||
import net.engio.mbassy.listener.Enveloped;
|
|
||||||
import net.engio.mbassy.listener.Handler;
|
|
||||||
import net.engio.mbassy.listener.MetadataReader;
|
|
||||||
import net.engio.mbassy.subscription.MessageEnvelope;
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static net.engio.mbassy.listener.MessageListener.ForMessage;
|
import net.engio.mbassy.common.AssertSupport;
|
||||||
|
import net.engio.mbassy.common.IPredicate;
|
||||||
|
import net.engio.mbassy.listener.Enveloped;
|
||||||
|
import net.engio.mbassy.listener.Handler;
|
||||||
|
import net.engio.mbassy.listener.MessageHandler;
|
||||||
|
import net.engio.mbassy.listener.MessageListener;
|
||||||
|
import net.engio.mbassy.listener.MetadataReader;
|
||||||
|
import net.engio.mbassy.subscription.MessageEnvelope;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -26,7 +30,7 @@ public class MetadataReaderTest extends AssertSupport {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testListenerWithoutInheritance() {
|
public void testListenerWithoutInheritance() {
|
||||||
MessageListener<MessageListener1> listener = reader.getMessageListener(MessageListener1.class);
|
MessageListener<MessageListener1> listener = this.reader.getMessageListener(MessageListener1.class);
|
||||||
ListenerValidator validator = new ListenerValidator()
|
ListenerValidator validator = new ListenerValidator()
|
||||||
.expectHandlers(2, String.class)
|
.expectHandlers(2, String.class)
|
||||||
.expectHandlers(2, Object.class)
|
.expectHandlers(2, Object.class)
|
||||||
@ -45,7 +49,7 @@ public class MetadataReaderTest extends AssertSupport {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testListenerWithInheritance() {
|
public void testListenerWithInheritance() {
|
||||||
MessageListener<MessageListener2> listener = reader.getMessageListener(MessageListener2.class);
|
MessageListener<MessageListener2> listener = this.reader.getMessageListener(MessageListener2.class);
|
||||||
ListenerValidator validator = new ListenerValidator()
|
ListenerValidator validator = new ListenerValidator()
|
||||||
.expectHandlers(2, String.class)
|
.expectHandlers(2, String.class)
|
||||||
.expectHandlers(2, Object.class)
|
.expectHandlers(2, Object.class)
|
||||||
@ -55,7 +59,7 @@ public class MetadataReaderTest extends AssertSupport {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testListenerWithInheritanceOverriding() {
|
public void testListenerWithInheritanceOverriding() {
|
||||||
MessageListener<MessageListener3> listener = reader.getMessageListener(MessageListener3.class);
|
MessageListener<MessageListener3> listener = this.reader.getMessageListener(MessageListener3.class);
|
||||||
|
|
||||||
ListenerValidator validator = new ListenerValidator()
|
ListenerValidator validator = new ListenerValidator()
|
||||||
.expectHandlers(0, String.class)
|
.expectHandlers(0, String.class)
|
||||||
@ -66,7 +70,7 @@ public class MetadataReaderTest extends AssertSupport {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testEnveloped() {
|
public void testEnveloped() {
|
||||||
MessageListener<EnvelopedListener> listener = reader.getMessageListener(EnvelopedListener.class);
|
MessageListener<EnvelopedListener> listener = this.reader.getMessageListener(EnvelopedListener.class);
|
||||||
ListenerValidator validator = new ListenerValidator()
|
ListenerValidator validator = new ListenerValidator()
|
||||||
.expectHandlers(1, String.class)
|
.expectHandlers(1, String.class)
|
||||||
.expectHandlers(2, Integer.class)
|
.expectHandlers(2, Integer.class)
|
||||||
@ -79,7 +83,7 @@ public class MetadataReaderTest extends AssertSupport {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testEnvelopedSubclass() {
|
public void testEnvelopedSubclass() {
|
||||||
MessageListener<EnvelopedListenerSubclass> listener = reader.getMessageListener(EnvelopedListenerSubclass.class);
|
MessageListener<EnvelopedListenerSubclass> listener = this.reader.getMessageListener(EnvelopedListenerSubclass.class);
|
||||||
ListenerValidator validator = new ListenerValidator()
|
ListenerValidator validator = new ListenerValidator()
|
||||||
.expectHandlers(1, String.class)
|
.expectHandlers(1, String.class)
|
||||||
.expectHandlers(2, Integer.class)
|
.expectHandlers(2, Integer.class)
|
||||||
@ -95,24 +99,35 @@ public class MetadataReaderTest extends AssertSupport {
|
|||||||
private Map<Class<?>, Integer> handlers = new HashMap<Class<?>, Integer>();
|
private Map<Class<?>, Integer> handlers = new HashMap<Class<?>, Integer>();
|
||||||
|
|
||||||
public ListenerValidator expectHandlers(Integer count, Class<?> messageType){
|
public ListenerValidator expectHandlers(Integer count, Class<?> messageType){
|
||||||
handlers.put(messageType, count);
|
this.handlers.put(messageType, count);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void check(MessageListener listener){
|
public void check(MessageListener listener){
|
||||||
for(Map.Entry<Class<?>, Integer> expectedHandler: handlers.entrySet()){
|
for(Map.Entry<Class<?>, Integer> expectedHandler: this.handlers.entrySet()){
|
||||||
|
Class<?> key = expectedHandler.getKey();
|
||||||
|
|
||||||
if(expectedHandler.getValue() > 0){
|
if(expectedHandler.getValue() > 0){
|
||||||
assertTrue(listener.handles(expectedHandler.getKey()));
|
assertTrue(!getHandlers(listener, ForMessage(key)).isEmpty());
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
assertFalse(listener.handles(expectedHandler.getKey()));
|
assertFalse(!getHandlers(listener, ForMessage(key)).isEmpty());
|
||||||
}
|
}
|
||||||
assertEquals(expectedHandler.getValue(), listener.getHandlers(ForMessage(expectedHandler.getKey())).size());
|
assertEquals(expectedHandler.getValue(), getHandlers(listener, ForMessage(key)).size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<MessageHandler> getHandlers(MessageListener<MessageHandler> listener, IPredicate<MessageHandler> filter) {
|
||||||
|
List<MessageHandler> matching = new LinkedList<MessageHandler>();
|
||||||
|
for (MessageHandler handler : listener.getHandlers()) {
|
||||||
|
if (filter.apply(handler)) {
|
||||||
|
matching.add(handler);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return matching;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -141,6 +156,7 @@ public class MetadataReaderTest extends AssertSupport {
|
|||||||
public class MessageListener2 extends MessageListener1 {
|
public class MessageListener2 extends MessageListener1 {
|
||||||
|
|
||||||
// redefine handler implementation (not configuration)
|
// redefine handler implementation (not configuration)
|
||||||
|
@Override
|
||||||
public void handleString(String s) {
|
public void handleString(String s) {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -150,11 +166,13 @@ public class MetadataReaderTest extends AssertSupport {
|
|||||||
public class MessageListener3 extends MessageListener2 {
|
public class MessageListener3 extends MessageListener2 {
|
||||||
|
|
||||||
// narrow the handler
|
// narrow the handler
|
||||||
|
@Override
|
||||||
@Handler(rejectSubtypes = true)
|
@Handler(rejectSubtypes = true)
|
||||||
public void handleAny(Object o) {
|
public void handleAny(Object o) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@Handler(enabled = false)
|
@Handler(enabled = false)
|
||||||
public void handleString(String s) {
|
public void handleString(String s) {
|
||||||
|
|
||||||
@ -182,6 +200,7 @@ public class MetadataReaderTest extends AssertSupport {
|
|||||||
public class EnvelopedListenerSubclass extends EnvelopedListener{
|
public class EnvelopedListenerSubclass extends EnvelopedListener{
|
||||||
|
|
||||||
// narrow to integer
|
// narrow to integer
|
||||||
|
@Override
|
||||||
@Handler
|
@Handler
|
||||||
@Enveloped(messages = Integer.class)
|
@Enveloped(messages = Integer.class)
|
||||||
public void handleEnveloped2(MessageEnvelope o) {
|
public void handleEnveloped2(MessageEnvelope o) {
|
||||||
|
Loading…
Reference in New Issue
Block a user