public void Should_Be_Able_To_Resolve_Logger() { /* Setup */ using var container = new SimpleDependencyInjectionContainer(); container.AddZyRabbit(); /* Test */ var logger1 = container.GetService <ILogger <IExclusiveLock> >(); var logger2 = container.GetService <ILogger <IExclusiveLock> >(); Assert.Same(logger1, logger2); Assert.NotNull(logger1); }
public void Should_Be_Able_To_Resolve_Client_With_Plugins_From_SimpleDependency() { /* Setup */ using var container = new SimpleDependencyInjectionContainer(); container.AddZyRabbit(new ZyRabbitOptions { Plugins = p => p.UseStateMachine() }); /* Test */ var client = container.GetService <IBusClient>(); var middleware = container.GetService <RetrieveStateMachineMiddleware>(); /* Assert */ Assert.NotNull(client); Assert.NotNull(middleware); }
public async Task Should_Be_Able_To_Publish_Message_From_Resolved_Client() { /* Setup */ using var container = new SimpleDependencyInjectionContainer(); container.AddZyRabbit(); /* Test */ var client = container.GetService <IBusClient>(); await client.PublishAsync(new BasicMessage()); await client.DeleteExchangeAsync <BasicMessage>(); var disposer = container.GetService <IResourceDisposer>(); /* Assert */ disposer.Dispose(); }
public async Task Should_Be_Able_To_Resolve_Middleware_With_Parameter() { /* Setup */ using var container = new SimpleDependencyInjectionContainer(); container.AddZyRabbit(); // Configure middleware via options to throw the InvalidOperationException exception var options = new ExchangeDeclareOptions { ThrowOnFailFunc = _ => true }; /* Test */ var middleware = container.GetService <ExchangeDeclareMiddleware>(options); /* Assert */ await Assert.ThrowsAnyAsync <InvalidOperationException>(async() => { await middleware.InvokeAsync(null, CancellationToken.None); }); }