public void TestOrderOfRequestPublishProcessingAndCancelled() { // Setup ServiceProvider sp = BuildTestServiceProviderCancel(); var publishMediator = sp.GetService <INotificationMediator <TestPublishNotication> >(); var rq = new TestPublishNotication(); CancellationTokenSource ts = new CancellationTokenSource(); // Action var tsks = publishMediator.PublishAsync(rq, ts.Token); ts.Cancel(); Assert.Throws <AggregateException>(() => Task.WaitAll(tsks)); Assert.Equal(2, tsks.Length); }
public void TestOrderOfRequestPublishProcessingOfExistedHandlerWithException() { // Setup ServiceProvider sp = BuildTestServiceProviderException(); var publishMediator = sp.GetService <INotificationMediator <TestPublishNotication> >(); var rq = new TestPublishNotication(); // Action var tsks = publishMediator.PublishAsync(rq, CancellationToken.None); Assert.Throws <AggregateException>(() => Task.WaitAll(tsks)); // Asserts Assert.Equal(5, tsks.Length); Assert.Equal(3, rq.Visitor.Count); Assert.Equal(ServicingOrder.Initialization.ToString(), rq.Visitor[0]); Assert.Equal(ServicingOrder.PreProcessing.ToString(), rq.Visitor[1]); Assert.Equal(ServicingOrder.Processing.ToString(), rq.Visitor[2]); }