public StopwatchMiddlewareTests(ITestOutputHelper outputHelper)
        {
            var loggerFactory = LoggerFactory.Create(lf => lf.AddXUnit(outputHelper));

            _handler = new InspectableHandler <OrderAccepted>();
            _monitor = new TrackingLoggingMonitor(loggerFactory.CreateLogger <TrackingLoggingMonitor>());
            var serviceResolver = new FakeServiceResolver(c =>
                                                          c.AddSingleton <IHandlerAsync <OrderAccepted> >(_handler)
                                                          .AddSingleton <IMessageMonitor>(_monitor));

            _middleware = new HandlerMiddlewareBuilder(serviceResolver, serviceResolver)
                          .UseHandler <OrderAccepted>()
                          .UseStopwatch(_handler.GetType())
                          .Build();
        }
Пример #2
0
        private void GivenInternal()
        {
            Queues  = new List <ISqsQueue>();
            Handler = new InspectableHandler <SimpleMessage>();

            var testResolver = new FakeServiceResolver(sc => sc
                                                       .AddLogging(l => l.AddXUnit(OutputHelper)));

            Middleware            = new HandlerMiddlewareBuilder(testResolver, testResolver).UseHandler(ctx => Handler).Build();
            Monitor               = new TrackingLoggingMonitor(LoggerFactory.CreateLogger <TrackingLoggingMonitor>());
            SerializationRegister = new FakeSerializationRegister();
            MiddlewareMap         = new MiddlewareMap();

            Given();
        }
        protected override void Given()
        {
            _queue = CreateSuccessfulTestQueue(Guid.NewGuid().ToString(), new TestMessage());
            Queues.Add(_queue);
            _messageLock = new FakeMessageLock();

            var servicesBuilder = new ServicesBuilder(new MessagingBusBuilder());
            var serviceResolver = new FakeServiceResolver(sc =>
                                                          sc.AddSingleton <IMessageLockAsync>(_messageLock)
                                                          .AddSingleton <IHandlerAsync <SimpleMessage> >(Handler)
                                                          .AddLogging(x => x.AddXUnit(OutputHelper)));

            var middlewareBuilder = new HandlerMiddlewareBuilder(serviceResolver, serviceResolver);

            var middleware = middlewareBuilder.Configure(pipe =>
            {
                pipe.UseExactlyOnce <SimpleMessage>("a-unique-lock-key");
                pipe.UseHandler <SimpleMessage>();
            }).Build();

            Middleware = middleware;
        }
        public async Task WhenMessageIsLockedByAnotherHandler_MessageWillBeLeftInTheQueue()
        {
            var messageLock = new FakeMessageLock(false);

            var testResolver = new FakeServiceResolver(sc => sc
                                                       .AddLogging(l =>
                                                                   l.AddXUnit(_outputHelper))
                                                       .AddSingleton <IMessageLockAsync>(messageLock));

            var handler = new InspectableHandler <OrderAccepted>();

            var middleware = new HandlerMiddlewareBuilder(testResolver, testResolver)
                             .UseExactlyOnce <OrderAccepted>(nameof(InspectableHandler <OrderAccepted>),
                                                             TimeSpan.FromSeconds(1))
                             .UseHandler(ctx => handler)
                             .Build();

            var context = new HandleMessageContext(new OrderAccepted(), typeof(OrderAccepted),
                                                   "test-queue");
            var result = await middleware.RunAsync(context, null, CancellationToken.None);

            handler.ReceivedMessages.ShouldBeEmpty();
            result.ShouldBeFalse();
        }
 public HandlerMiddlewareBuilderTests()
 {
     _resolver = new FakeServiceResolver();
 }