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:
durron597 2013-05-20 18:08:34 -05:00
parent 2ecefc9b04
commit 8f30ea6c53
4 changed files with 50 additions and 3 deletions

View File

@ -62,11 +62,12 @@ public class ReflectionUtils {
public static Collection<Class> getSuperclasses(Class from) {
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()) {
superclasses.add(from.getSuperclass());
from = from.getSuperclass();
}
collectInterfaces(from, superclasses);
return superclasses;
}

View 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!");
}
}

View File

@ -4,8 +4,8 @@ import net.engio.mbassy.bus.*;
import net.engio.mbassy.common.MessageBusTest;
import net.engio.mbassy.common.TestUtil;
import net.engio.mbassy.dispatch.HandlerInvocation;
import net.engio.mbassy.events.SubTestMessage;
import net.engio.mbassy.events.TestMessage;
import net.engio.mbassy.messages.SubTestMessage;
import net.engio.mbassy.messages.TestMessage;
import net.engio.mbassy.listener.*;
import net.engio.mbassy.listeners.*;
import net.engio.mbassy.subscription.SubscriptionContext;

View File

@ -0,0 +1,10 @@
package net.engio.mbassy.messages;
/**
* A test message that uses an interface
*
* @author durron597
*/
public class TestMessage3 implements ITestMessage {
}