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(); }
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(); }