public async Task Publish_WhileDisposed_Throws() { // arrange _subscriptionStore .Setup(m => m.GetSubscriptions(It.IsAny <string>())) .ReturnsAsync(GetSubs(10)); var handler = new FakeHandler(HttpStatusCode.OK, "test"); var hub = new Hub( _hubLocation, _subscriptionStore.Object, _challengeGenerator.Object, _queue.Object, handler); hub.Dispose(); // act // assert await Assert.ThrowsAsync <ObjectDisposedException>( () => hub.PublishDirect(_testPublication)); }
public async Task PublishDirect_FailedNotify_TriggersEvent() { // arrange _subscriptionStore .Setup(m => m.GetSubscriptions(It.IsAny <string>())) .ReturnsAsync(GetSubs(2)); var handler = new FakeHandler(HttpStatusCode.NotFound, "test failure"); var hub = new Hub( _hubLocation, _subscriptionStore.Object, _challengeGenerator.Object, _queue.Object, handler); var failCount = 0; hub.PublishNotificationFailed += (o, s) => failCount++; // act await hub.PublishDirect(_testPublication); await Task.Delay(500); // assert Assert.Equal(2, failCount); }
public async Task Subscribe_MissingChallengeResponse_ReturnsFalse() { // arrange var handler = new FakeHandler(HttpStatusCode.OK, null); var hub = new Hub(_hubLocation, _subscriptionStore.Object, _challengeGenerator.Object, _queue.Object, handler); // act var result = await hub.Subscribe(_testSubscription, "baz"); // assert Assert.False(result.SubscriptionSucceeded); }
public async Task Subscribe_ChallengeFailed_ReturnsFalse() { // arrange var subscriberChallengeReply = "bar"; // server sends "foo" var handler = new FakeHandler(HttpStatusCode.OK, subscriberChallengeReply); var hub = new Hub(_hubLocation, _subscriptionStore.Object, _challengeGenerator.Object, _queue.Object, handler); // act var result = await hub.Subscribe(_testSubscription, "baz"); // assert Assert.False(result.SubscriptionSucceeded); }
public async Task Subscribe_Failure_DoesNotCallStore() { // arrange var store = new Mock <ISubscriptionStore>(); store.Setup(m => m.Subscribe(It.IsAny <Subscription>())); var handler = new FakeHandler(HttpStatusCode.OK, null); var hub = new Hub(_hubLocation, store.Object, _challengeGenerator.Object, _queue.Object, handler); // act var result = await hub.Subscribe(_testSubscription, "baz"); // assert store.Verify(m => m.Subscribe(It.IsAny <Subscription>()), Times.Never); }
public async Task Subscribe_SunnyDay_ReturnsTrue() { // arrange var handler = new FakeHandler(HttpStatusCode.OK, ChallengeValue); var hub = new Hub( _hubLocation, _subscriptionStore.Object, _challengeGenerator.Object, _queue.Object, handler); // act var result = await hub.Subscribe(_testSubscription, "verifyToken"); // assert Assert.True(result.SubscriptionSucceeded); }
public async Task Subscribe_Success_CallsSubscriptionStore() { // arrange var subStore = new Mock <ISubscriptionStore>(); subStore .Setup(m => m.Subscribe(It.IsAny <Subscription>())) .Returns(Task.FromResult(It.IsAny <SubscriptionResult>())); var handler = new FakeHandler(HttpStatusCode.OK, ChallengeValue); var hub = new Hub(_hubLocation, subStore.Object, _challengeGenerator.Object, _queue.Object, handler); // act var result = await hub.Subscribe(_testSubscription, "verifyToken"); // assert subStore.Verify(m => m.Subscribe(It.IsAny <Subscription>()), Times.Once); }
public async Task PublishDirect_NoSubscribers_NoHttpCallsMade() { // arrange _subscriptionStore .Setup(m => m.GetSubscriptions(It.IsAny <string>())) .ReturnsAsync(GetSubs(0)); var handler = new FakeHandler(HttpStatusCode.OK, "test"); var hub = new Hub( _hubLocation, _subscriptionStore.Object, _challengeGenerator.Object, _queue.Object, handler); // act await hub.PublishDirect(_testPublication); await Task.Delay(500); // assert Assert.Equal(0, handler.Count); }