subscription manager test improvements

This commit is contained in:
benjamin 2013-05-22 18:06:24 +02:00
parent e5b13ba8e6
commit 0a7ed2e651
2 changed files with 15 additions and 24 deletions

View File

@ -27,7 +27,7 @@ public class Subscription {
this.listeners = listeners; this.listeners = listeners;
} }
public boolean isFromListener(Class listener){ public boolean belongsTo(Class listener){
return context.getHandlerMetadata().isFromListener(listener); return context.getHandlerMetadata().isFromListener(listener);
} }

View File

@ -13,7 +13,6 @@ import net.engio.mbassy.subscription.SubscriptionManager;
import org.junit.Test; import org.junit.Test;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/** /**
* Todo: Add javadoc * Todo: Add javadoc
@ -30,7 +29,7 @@ public class SubscriptionManagerTest extends UnitTest{
final Set listeners = Collections.synchronizedSet(new HashSet()); final Set listeners = Collections.synchronizedSet(new HashSet());
final int concurrentUnits = 5; final int concurrentUnits = 5;
final int numberOfLoops = 100; final int numberOfLoops = 100;
final int numberOfListeners = numberOfLoops * concurrentUnits * 2; final int numberOfListeners = numberOfLoops * concurrentUnits;
ConcurrentExecutor.runConcurrent(new Runnable() { ConcurrentExecutor.runConcurrent(new Runnable() {
@Override @Override
@ -48,26 +47,14 @@ public class SubscriptionManagerTest extends UnitTest{
} }
}, concurrentUnits); }, concurrentUnits);
SubscriptionValidator validator = new SubscriptionValidator();
validator.expect(numberOfListeners, SimpleSynchronousMessageHandler.class, ITestMessage.class);
validator.expect(numberOfListeners, SimpleSynchronousMessageHandler2.class, ITestMessage.class);
validator.expect(numberOfListeners, SimpleSynchronousMessageHandler.class, TestMessage.class);
validator.expect(numberOfListeners, SimpleSynchronousMessageHandler2.class, TestMessage.class);
Collection<Subscription> subscriptions = subMan.getSubscriptionsByMessageType(TestMessage.class); validator.validate(subMan);
assertEquals(2, subscriptions.size());
for(Subscription sub : subscriptions){
assertEquals(numberOfListeners, sub.size());
for(Object listener : listeners){
if(sub.isFromListener(listener))assertTrue(sub.contains(listener));
}
}
subscriptions = subMan.getSubscriptionsByMessageType(ITestMessage.class);
assertEquals(2, subscriptions.size());
for(Subscription sub : subscriptions){
assertEquals(numberOfListeners, sub.size());
for(Object listener : listeners){
if(sub.isFromListener(listener))assertTrue(sub.contains(listener));
}
}
} }
@ -93,13 +80,17 @@ public class SubscriptionManagerTest extends UnitTest{
assertEquals(subscriptions.size(), validationEntries.size()); assertEquals(subscriptions.size(), validationEntries.size());
for(Entry validationEntry : validationEntries){ for(Entry validationEntry : validationEntries){
Subscription matchingSub = null; Subscription matchingSub = null;
// one of the subscriptions must belong to the subscriber type
for(Subscription sub : subscriptions){ for(Subscription sub : subscriptions){
if(sub.isFromListener(validationEntry.subscriber)); if(sub.belongsTo(validationEntry.subscriber)){
matchingSub = sub;
break;
}
} }
assertNotNull(matchingSub);
assertEquals(validationEntry.numberOfSubscribers, matchingSub.size());
} }
} }
} }