예제 #1
0
        public async Task A_null_unsubscriber_causes_an_ArgumentNullException()
        {
            var dispatcher      = Substitute.For <IDispatcher>();
            var eventAggregator = new MessageAggregator();

            Assert.ThrowsAsync <ArgumentNullException>(async() => await eventAggregator.UnsubscribeAsync(null));
        }
예제 #2
0
        public async Task A_valid_subscriber_gets_removed_from_the_handler_list()
        {
            var dispatcher      = Substitute.For <IDispatcher>();
            var handlerStub     = Substitute.For <IHandleAsync <object> >();
            var eventAggregator = new MessageAggregator();

            await eventAggregator.SubscribeAsync(handlerStub);

            Assert.True(eventAggregator.HandlerExistsFor(typeof(object)));

            await eventAggregator.UnsubscribeAsync(handlerStub);

            Assert.False(eventAggregator.HandlerExistsFor(typeof(object)));
        }