subscription manager test improvements
This commit is contained in:
parent
e5b13ba8e6
commit
0a7ed2e651
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user