示例#1
0
        public void Should_Be_Able_To_Check_Logger()
        {
            /* Setup */
            using var container = new SimpleDependencyInjectionContainer();
            container.AddZyRabbit();

            /* Test */
            Assert.True(container.IsRegistered(typeof(ILogger <>)));
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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();
        }
示例#5
0
        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);
            });
        }
示例#6
0
        public static Disposable.BusClient CreateSingleton(ZyRabbitOptions options = null)
        {
            var ioc = new SimpleDependencyInjectionContainer();

            return(CreateSingleton(options, ioc, register => ioc));
        }
示例#7
0
        public static InstanceFactory CreateInstanceFactory(ZyRabbitOptions options = null)
        {
            var ioc = new SimpleDependencyInjectionContainer();

            return(CreateInstanceFactory(options, ioc, register => ioc));
        }