1. Fixed bug #31, added a test case
2. SyncBusTest didn't compile, I fixed the imports so that it did.
This commit is contained in:
parent
2ecefc9b04
commit
8f30ea6c53
@ -62,11 +62,12 @@ public class ReflectionUtils {
|
|||||||
|
|
||||||
public static Collection<Class> getSuperclasses(Class from) {
|
public static Collection<Class> getSuperclasses(Class from) {
|
||||||
Collection<Class> superclasses = new LinkedList<Class>();
|
Collection<Class> superclasses = new LinkedList<Class>();
|
||||||
|
// collectInterfaces needs to come first otherwise you call it on class "Object"
|
||||||
|
collectInterfaces(from, superclasses);
|
||||||
while (!from.equals(Object.class) && !from.isInterface()) {
|
while (!from.equals(Object.class) && !from.isInterface()) {
|
||||||
superclasses.add(from.getSuperclass());
|
superclasses.add(from.getSuperclass());
|
||||||
from = from.getSuperclass();
|
from = from.getSuperclass();
|
||||||
}
|
}
|
||||||
collectInterfaces(from, superclasses);
|
|
||||||
return superclasses;
|
return superclasses;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
36
src/test/java/net/engio/mbassy/InterfaceTest.java
Normal file
36
src/test/java/net/engio/mbassy/InterfaceTest.java
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package net.engio.mbassy;
|
||||||
|
|
||||||
|
import net.engio.mbassy.bus.BusConfiguration;
|
||||||
|
import net.engio.mbassy.bus.MBassador;
|
||||||
|
import net.engio.mbassy.common.DeadMessage;
|
||||||
|
import net.engio.mbassy.listener.Handler;
|
||||||
|
import net.engio.mbassy.messages.ITestMessage;
|
||||||
|
import net.engio.mbassy.messages.TestMessage3;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A test to make sure that Interface subscriptions are working correctly
|
||||||
|
*
|
||||||
|
* @author durron597
|
||||||
|
*/
|
||||||
|
public class InterfaceTest {
|
||||||
|
@Test
|
||||||
|
public void testMBassador() {
|
||||||
|
MBassador<ITestMessage> bus = new MBassador<ITestMessage>(BusConfiguration.Default());
|
||||||
|
bus.subscribe(this);
|
||||||
|
TestMessage3 myFoo = new TestMessage3();
|
||||||
|
bus.publish(myFoo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Handler
|
||||||
|
public void handleFoo(ITestMessage f) {
|
||||||
|
Assert.assertTrue(f instanceof TestMessage3);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Handler
|
||||||
|
public void handleDead(DeadMessage d) {
|
||||||
|
Assert.fail("This class should handle this message appropriately!");
|
||||||
|
}
|
||||||
|
}
|
@ -4,8 +4,8 @@ import net.engio.mbassy.bus.*;
|
|||||||
import net.engio.mbassy.common.MessageBusTest;
|
import net.engio.mbassy.common.MessageBusTest;
|
||||||
import net.engio.mbassy.common.TestUtil;
|
import net.engio.mbassy.common.TestUtil;
|
||||||
import net.engio.mbassy.dispatch.HandlerInvocation;
|
import net.engio.mbassy.dispatch.HandlerInvocation;
|
||||||
import net.engio.mbassy.events.SubTestMessage;
|
import net.engio.mbassy.messages.SubTestMessage;
|
||||||
import net.engio.mbassy.events.TestMessage;
|
import net.engio.mbassy.messages.TestMessage;
|
||||||
import net.engio.mbassy.listener.*;
|
import net.engio.mbassy.listener.*;
|
||||||
import net.engio.mbassy.listeners.*;
|
import net.engio.mbassy.listeners.*;
|
||||||
import net.engio.mbassy.subscription.SubscriptionContext;
|
import net.engio.mbassy.subscription.SubscriptionContext;
|
||||||
|
10
src/test/java/net/engio/mbassy/messages/TestMessage3.java
Normal file
10
src/test/java/net/engio/mbassy/messages/TestMessage3.java
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package net.engio.mbassy.messages;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A test message that uses an interface
|
||||||
|
*
|
||||||
|
* @author durron597
|
||||||
|
*/
|
||||||
|
public class TestMessage3 implements ITestMessage {
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user