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