示例#1
0
        public void TestOrderOfRequestSendProcessingAndCancelled()
        {
            // Setup
            ServiceProvider         sp = BuildTestServiceProviderCancel();
            var                     publishMediator = sp.GetService <IRequestMediator <TestSendRequest, TestSendResponse> >();
            var                     rq = new TestSendRequest();
            CancellationTokenSource ts = new CancellationTokenSource();

            // Action
            var tsks = publishMediator.SendAsync(rq, ts.Token);

            ts.Cancel();
            Assert.Throws <AggregateException>(() => Task.WaitAll(tsks));
            Assert.Equal(2, tsks.Length);
        }
示例#2
0
        public void TestOrderOfRequestSendProcessingOfExistedHandlerWithException()
        {
            // Setup
            ServiceProvider sp = BuildTestServiceProviderException();
            var             publishMediator = sp.GetService <IRequestMediator <TestSendRequest, TestSendResponse> >();
            var             rq = new TestSendRequest();

            // Action
            var tsks = publishMediator.SendAsync(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]);
        }
        public async Task <bool> SendMessage()
        {
            try
            {
                var req = new TestSendRequest()
                {
                    MessageId      = Guid.NewGuid(),
                    MessageContent = "Mensaje enviado desde proyecto RebusTest",
                    MessageDate    = DateTime.UtcNow
                };


                var oldReq = new LegacySampleMessage()
                {
                    MessageId      = Guid.NewGuid(),
                    MessageContent = "Mensaje enviado desde proyecto RebusTest",
                    MessageDate    = DateTime.UtcNow
                };

                var reqSaga = new FirstSagaMessage()
                {
                    UserId       = Guid.NewGuid(),
                    CreationDate = DateTime.UtcNow,
                    UserName     = "******"
                };

                //SendSagaMessage();
                //var res = await _bus.SendRequest<TestSendResponse>(reqSaga, null, TimeSpan.FromSeconds(30));
                await _bus.Publish(req);

                //_bus.Publish(req);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                throw;
            }

            Console.WriteLine("Terminado sin errores");

            return(true);
        }
示例#4
0
        public void TestOrderOfRequestSendProcessingOfExistedHandler()
        {
            // Setup
            ServiceProvider sp = BuildTestServiceProviderNormal();
            var             publishMediator = sp.GetService <IRequestMediator <TestSendRequest, TestSendResponse> >();
            var             rq = new TestSendRequest();

            // Action
            var tsks = publishMediator.SendAsync(rq, CancellationToken.None);

            Task.WaitAll(tsks);

            // Asserts
            Assert.Equal(5, tsks.Length);
            Assert.Equal(5, 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]);
            Assert.Equal(ServicingOrder.PostProcessing.ToString(), rq.Visitor[3]);
            Assert.Equal(ServicingOrder.Complete.ToString(), rq.Visitor[4]);
        }