Esempio n. 1
0
        public void ConfigureDependencyResolverDiscoversCommandPublishers()
        {
            var mockConfigurationFactory = new Mock <IConfigurationFactory>();
            var httpConfig         = new HttpConfiguration();
            var processOrderConfig = new ProcessOrderServiceBusQueueCommandPublisherConfiguration {
                QueueName = "One"
            };
            var submitOrderConfig = new SubmitOrderForProductionServiceBusQueueCommandPublisherConfiguration {
                QueueName = "Two"
            };

            try
            {
                mockConfigurationFactory
                .Setup(factory => factory.Create(It.IsAny <Type>()))
                .Returns <Type>(type =>
                {
                    if (type == typeof(ProcessOrderServiceBusQueueCommandPublisherConfiguration))
                    {
                        return(processOrderConfig);
                    }
                    else if (type == typeof(SubmitOrderForProductionServiceBusQueueCommandPublisherConfiguration))
                    {
                        return(submitOrderConfig);
                    }

                    return(Activator.CreateInstance(type));
                });

                Startup.ConfigureDependencyResolver(httpConfig, () => mockConfigurationFactory.Object);

                var locator = httpConfig.DependencyResolver;
                locator.Should().NotBeNull("because the dependency resolver should have been set");

                var processOrderPublisher = locator.GetService(typeof(ICommandPublisher <ProcessOrder>));
                processOrderPublisher.Should().NotBeNull("because the ProcessOrder publisher should be resolvable");

                var submitOrderPublisher = locator.GetService(typeof(ICommandPublisher <SubmitOrderForProduction>));
                submitOrderPublisher.Should().NotBeNull("because the SubmitOrderForProduction publisher should be resolvable");
            }
            finally
            {
                httpConfig?.DependencyResolver?.Dispose();
            }
        }
Esempio n. 2
0
        public void DependencyResolverDiscoversWebJobFunctions()
        {
            var mockConfigurationFactory = new Mock <IConfigurationFactory>();
            var processOrderConfig       = new ProcessOrderServiceBusQueueCommandPublisherConfiguration {
                QueueName = "One"
            };
            var submitOrderConfig = new SubmitOrderForProductionServiceBusQueueCommandPublisherConfiguration {
                QueueName = "Two"
            };
            var notifyFailureConfig = new NotifyOfFatalFailureServiceBusQueueCommandPublisherConfiguration {
                QueueName = "Three"
            };

            mockConfigurationFactory
            .Setup(factory => factory.Create(It.IsAny <Type>()))
            .Returns <Type>(type =>
            {
                if (type == typeof(ProcessOrderServiceBusQueueCommandPublisherConfiguration))
                {
                    return(processOrderConfig);
                }
                else if (type == typeof(SubmitOrderForProductionServiceBusQueueCommandPublisherConfiguration))
                {
                    return(submitOrderConfig);
                }
                else if (type == typeof(NotifyOfFatalFailureServiceBusQueueCommandPublisherConfiguration))
                {
                    return(notifyFailureConfig);
                }

                return(Activator.CreateInstance(type));
            });

            var container = EntryPoint.CreateDependencyResolver(() => mockConfigurationFactory.Object);

            using (var scope = container.BeginLifetimeScope())
            {
                var orderProcessorFunctions = scope.Resolve <OrderSubmitterFunctions>();
                orderProcessorFunctions.Should().NotBeNull("because the Order Submitter WebJob functions should be resolvable");
            }
        }
Esempio n. 3
0
        public void DependencyResolverDiscoversCommandPublishers()
        {
            var mockConfigurationFactory = new Mock <IConfigurationFactory>();
            var processOrderConfig       = new ProcessOrderServiceBusQueueCommandPublisherConfiguration {
                QueueName = "One"
            };
            var submitOrderConfig = new SubmitOrderForProductionServiceBusQueueCommandPublisherConfiguration {
                QueueName = "Two"
            };

            mockConfigurationFactory
            .Setup(factory => factory.Create(It.IsAny <Type>()))
            .Returns <Type>(type =>
            {
                if (type == typeof(ProcessOrderServiceBusQueueCommandPublisherConfiguration))
                {
                    return(processOrderConfig);
                }
                else if (type == typeof(SubmitOrderForProductionServiceBusQueueCommandPublisherConfiguration))
                {
                    return(submitOrderConfig);
                }

                return(Activator.CreateInstance(type));
            });

            var container = EntryPoint.CreateDependencyResolver(() => mockConfigurationFactory.Object);

            using (var scope = container.BeginLifetimeScope())
            {
                var processOrderPublisher = scope.Resolve <ICommandPublisher <ProcessOrder> >();
                processOrderPublisher.Should().NotBeNull("because the ProcessOrder publisher should be resolvable");

                var submitOrderPublisher = scope.Resolve <ICommandPublisher <SubmitOrderForProduction> >();
                submitOrderPublisher.Should().NotBeNull("because the SubmitOrderForProduction publisher should be resolvable");
            }
        }