public void dispose_of_subscription_removes_it_from_composite() { var subscription = new MockSubscription<MessageA>(); var c = new CompositeSubscription { subscription }; c.ShouldHaveCount(1); subscription.Dispose(); c.ShouldHaveCount(0); }
public void dispose_of_subscription_removes_it_from_composite() { var subscription = new MockSubscription <MessageA>(); var c = new CompositeSubscription { subscription }; c.ShouldHaveCount(1); subscription.Dispose(); c.ShouldHaveCount(0); }
public void correct_behavior_subscribe_get_subscribe_new_then_get_old() { var sub1 = new MockSubscription <MessageA>(); var sub2 = new MockSubscription <MessageB>(); var r = GetResolver(); r.Add(sub1); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); r.Add(sub2); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); }
public void NewSubscriptionCollectHasNoElements() { MockSubscriptionCollection subscriptions = new MockSubscriptionCollection(); MockSubscription subscription = new MockSubscription("test", "testPub"); Assert.AreEqual(0, subscriptions.Count); Assert.AreEqual(-1, subscriptions.Find("test")); Assert.AreEqual(-1, subscriptions.Find(subscription)); Assert.IsFalse(subscriptions.ContainsKey("test")); Assert.IsFalse(subscriptions.Contains(subscription)); }
public void correct_behavior_subscribe_get_subscribe_new_then_get_old() { var sub1 = new MockSubscription<MessageA>(); var sub2 = new MockSubscription<MessageB>(); var r = GetResolver(); r.Add(sub1); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); r.Add(sub2); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); }
public void AddingSubscriptionsReturnsCorrectNumberOfElements() { MockSubscriptionCollection subscriptions = new MockSubscriptionCollection(); MockSubscription subscription = new MockSubscription("test", "testPub"); subscriptions.Add(subscription); subscription = new MockSubscription("another", "anotherPub"); subscriptions.Add(subscription); Assert.AreEqual(2, subscriptions.Count); }
public void IndexThrowsForPastEndOfList() { MockSubscriptionCollection subscriptions = new MockSubscriptionCollection(); MockSubscription subscription = new MockSubscription("test", "testPub"); subscriptions.Add(subscription); subscription = new MockSubscription("another", "anotherPub"); subscriptions.Add(subscription); Subscription test = subscriptions[2]; }
public void IndexThrowsForNegativeIndex() { MockSubscriptionCollection subscriptions = new MockSubscriptionCollection(); MockSubscription subscription = new MockSubscription("test", "testPub"); subscriptions.Add(subscription); subscription = new MockSubscription("another", "anotherPub"); subscriptions.Add(subscription); Subscription test = subscriptions[-1]; }
public void IndexerThrowsWhenNotMatch() { MockSubscriptionCollection subscriptions = new MockSubscriptionCollection(); MockSubscription subscription = new MockSubscription("test", "testPub"); subscriptions.Add(subscription); subscription = new MockSubscription("another", "anotherPub"); subscriptions.Add(subscription); Subscription test = subscriptions["not"]; }
public void correct_behavior_of_resolver_with_regard_to_subscribe_dispose_subscribe_publish_twice() { var sub1 = new MockSubscription <MessageA>(); var r = GetResolver(); r.Add(sub1); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); sub1.Dispose(); sub1 = new MockSubscription <MessageA>(); r.Add(sub1); r.GetSubscriptionsFor(new MessageB()).ShouldHaveCount(0); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); }
public void correct_behavior_of_resolver_with_regard_to_subscribe_dispose_subscribe_publish_twice() { var sub1 = new MockSubscription<MessageA>(); var r = GetResolver(); r.Add(sub1); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); sub1.Dispose(); sub1 = new MockSubscription<MessageA>(); r.Add(sub1); r.GetSubscriptionsFor(new MessageB()).ShouldHaveCount(0); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); }
public void FindViaSubscriberReturnsCorrectResults() { MockSubscriptionCollection subscriptions = new MockSubscriptionCollection(); MockSubscription subscription = new MockSubscription("test", "testPub"); subscriptions.Add(subscription); subscription = new MockSubscription("another", "anotherPub"); subscriptions.Add(subscription); Assert.AreEqual(0, subscriptions.Find("test")); Assert.AreEqual(1, subscriptions.Find("another")); Assert.AreEqual(-1, subscriptions.Find("not")); }
public void ContainsKeyPerformsCorrectly() { MockSubscriptionCollection subscriptions = new MockSubscriptionCollection(); MockSubscription subscription = new MockSubscription("test", "testPub"); subscriptions.Add(subscription); subscription = new MockSubscription("another", "anotherPub"); subscriptions.Add(subscription); Assert.IsTrue(subscriptions.ContainsKey("test")); Assert.IsTrue(subscriptions.ContainsKey("another")); Assert.IsFalse(subscriptions.ContainsKey("not")); }
public void IntegerIndexerGetsCorrectSubscription() { MockSubscriptionCollection subscriptions = new MockSubscriptionCollection(); MockSubscription subscription = new MockSubscription("test", "testPub"); subscriptions.Add(subscription); subscription = new MockSubscription("another", "anotherPub"); subscriptions.Add(subscription); Subscription test = subscriptions[1]; Assert.IsNotNull(test); Assert.AreEqual("anotherPub", test.Publication); }
public void IndexFindsSubscriptionUsingSubscriber() { MockSubscriptionCollection subscriptions = new MockSubscriptionCollection(); MockSubscription subscription = new MockSubscription("test", "testPub"); subscriptions.Add(subscription); subscription = new MockSubscription("another", "anotherPub"); subscriptions.Add(subscription); Subscription test = subscriptions["another"]; Assert.IsNotNull(test); Assert.AreEqual("anotherPub", test.Publication); }
public void ContainsReturnsTrueOnlyForExactSameInstance() { MockSubscriptionCollection subscriptions = new MockSubscriptionCollection(); MockSubscription subscription1 = new MockSubscription("test", "testPub"); subscriptions.Add(subscription1); MockSubscription subscription2 = new MockSubscription("another", "anotherPub"); subscriptions.Add(subscription2); MockSubscription subscription3 = new MockSubscription("test", "testPub"); Assert.IsTrue(subscriptions.Contains(subscription1)); Assert.IsFalse(subscriptions.Contains(subscription3)); }
public void publishes_message_fire_and_forget() { var p = new ParallelNonBlockingPublisher(); var evtBlock = new ManualResetEvent(false); var evtSignal = new ManualResetEvent(false); var evtSignal2 = new ManualResetEvent(false); var lockingSub = new MockSubscription<MessageA>(evtBlock, evtSignal); var runThroughSub = new MockSubscription<MessageA>(evtSignal:evtSignal2); var token = new PublishToken(new MessageA(), new[] { lockingSub, runThroughSub }); p.LookAt(token); lockingSub.Received.ShouldBeEqualTo(0); evtSignal2.WaitOne(); runThroughSub.Received.ShouldBeEqualTo(1); evtBlock.Set(); evtSignal.WaitOne(); lockingSub.Received.ShouldBeEqualTo(1); }
public void Sequence_of_addition_and_disposal_works_as_shown() { var sub1 = new MockSubscription<MessageA>(); var sub2 = new MockSubscription<MessageA>(); var sub3 = new MockSubscription<MessageB>(); var r = GetResolver(); r.Add(sub1); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); r.Add(sub2); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(2); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(2); r.Add(sub3); r.GetSubscriptionsFor(new MessageB()).ShouldHaveCount(1); sub1.Dispose(); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); sub3.Dispose(); r.GetSubscriptionsFor(new MessageB()).ShouldHaveCount(0); }
public void publishes_message_fire_and_forget() { var p = new ParallelNonBlockingPublisher(); var evtBlock = new ManualResetEvent(false); var evtSignal = new ManualResetEvent(false); var evtSignal2 = new ManualResetEvent(false); var lockingSub = new MockSubscription <MessageA>(evtBlock, evtSignal); var runThroughSub = new MockSubscription <MessageA>(evtSignal: evtSignal2); var token = new PublishToken(new MessageA(), new[] { lockingSub, runThroughSub }); p.LookAt(token); lockingSub.Received.ShouldBeEqualTo(0); evtSignal2.WaitOne(); runThroughSub.Received.ShouldBeEqualTo(1); evtBlock.Set(); evtSignal.WaitOne(); lockingSub.Received.ShouldBeEqualTo(1); }
public void Sequence_of_addition_and_disposal_works_as_shown() { var sub1 = new MockSubscription <MessageA>(); var sub2 = new MockSubscription <MessageA>(); var sub3 = new MockSubscription <MessageB>(); var r = GetResolver(); r.Add(sub1); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); r.Add(sub2); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(2); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(2); r.Add(sub3); r.GetSubscriptionsFor(new MessageB()).ShouldHaveCount(1); sub1.Dispose(); r.GetSubscriptionsFor(new MessageA()).ShouldHaveCount(1); sub3.Dispose(); r.GetSubscriptionsFor(new MessageB()).ShouldHaveCount(0); }