public void DependencyResolverDependencyResolverDiscoversEventPublishers() { var mockConfigurationFactory = new Mock <IConfigurationFactory>(); var eventBaseConfig = new EventBaseServiceBusTopicEventPublisherConfiguration { TopicName = "One" }; mockConfigurationFactory .Setup(factory => factory.Create(It.IsAny <Type>())) .Returns <Type>(type => { if (type == typeof(ServiceBusTopicEventPublisherConfiguration <EventBase>)) { return(eventBaseConfig); } return(Activator.CreateInstance(type)); }); var container = EntryPoint.CreateDependencyResolver(() => mockConfigurationFactory.Object); using (var scope = container.BeginLifetimeScope()) { var eventBasePublisher = scope.Resolve <IEventPublisher <EventBase> >(); eventBasePublisher.Should().NotBeNull("because the EventBase publisher should be resolvable"); } }
public void ConfigureDependencyResolverDiscoversEventPublishers() { var mockConfigurationFactory = new Mock <IConfigurationFactory>(); var httpConfig = new HttpConfiguration(); var eventBaseConfig = new EventBaseServiceBusTopicEventPublisherConfiguration { TopicName = "One" }; try { mockConfigurationFactory .Setup(factory => factory.Create(It.IsAny <Type>())) .Returns <Type>(type => { if (type == typeof(ServiceBusTopicEventPublisherConfiguration <EventBase>)) { return(eventBaseConfig); } 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 eventBasePublisher = locator.GetService(typeof(IEventPublisher <EventBase>)); eventBasePublisher.Should().NotBeNull("because the EventBase publisher should be resolvable"); } finally { httpConfig?.DependencyResolver?.Dispose(); } }