public void RegistersConfigurationWithNestedTypesTest() { var builder = new ContainerBuilder(); var resolver = new ModelBuilderResolver <Config>(); var sut = new ConfigurationModule(resolver); builder.RegisterModule(sut); var container = builder.Build(); container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount + 7); container.Should().HaveRegistered <IConfig>(); container.Should().HaveRegistered <Config>(); container.Should().HaveRegistered <IStorage>(); container.Should().HaveRegistered <Storage>(); container.Should().HaveRegistered <IFirstJob>(); container.Should().HaveRegistered <FirstJob>(); var config = container.Resolve <IConfig>(); container.Resolve <Config>().Should().BeSameAs(config); var storage = container.Resolve <IStorage>(); container.Resolve <Storage>().Should().BeSameAs(storage); storage.Should().BeEquivalentTo(config.Storage); var job = container.Resolve <IFirstJob>(); container.Resolve <FirstJob>().Should().BeSameAs(job); job.Should().BeEquivalentTo(config.FirstJob); }
public void RegistersInstanceWithoutInterfaceTest() { var builder = new ContainerBuilder(); var resolver = new ModelBuilderResolver <NoDefinition>(); var sut = new ConfigurationModule(resolver); builder.RegisterModule(sut); var container = builder.Build(); container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount + 1); container.Should().HaveRegistered <NoDefinition>(); }
public void DoesNotRegisterValueTypeConfigTest() { var builder = new ContainerBuilder(); var resolver = new ModelBuilderResolver <int>(); var sut = new ConfigurationModule(resolver); builder.RegisterModule(sut); var container = builder.Build(); container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount); container.Should().NotHaveRegistered <int>(); }
public void RegistersConfigurationWithoutNestedTypesTest() { var builder = new ContainerBuilder(); var resolver = new ModelBuilderResolver <FirstJob>(); var sut = new ConfigurationModule(resolver); builder.RegisterModule(sut); var container = builder.Build(); container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount + 2); container.Should().HaveRegistered <IFirstJob>(); container.Should().HaveRegistered <FirstJob>(); }
public void CanRegisterTypeWhenPropertyThrowsException() { var builder = new ContainerBuilder(); var resolver = new ModelBuilderResolver <ExceptionProperty>(); var sut = new ConfigurationModule(resolver); builder.RegisterModule(sut); var container = builder.Build(); // There are several registrations which aren't expected because of Uri properties being resolved container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount + 1); container.Should().HaveRegistered <ExceptionProperty>(); }
public void CanRegisterTypeWithReadOnlyProperties() { // Try to get the read only property to be processed by using an environment override Environment.SetEnvironmentVariable(nameof(ReadOnlyProperty) + "." + nameof(ReadOnlyProperty.Timeout), "3"); var builder = new ContainerBuilder(); var resolver = new ModelBuilderResolver <ReadOnlyProperty>(); var sut = new ConfigurationModule(resolver); builder.RegisterModule(sut); var container = builder.Build(); // There are several registrations which aren't expected because of Uri properties being resolved container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount + 1); container.Should().HaveRegistered <ReadOnlyProperty>(); }
public void RegistersConfigurationWithClassHavingIndexerPropertyTest() { var builder = new ContainerBuilder(); var resolver = new ModelBuilderResolver <DataSet>(); var sut = new ConfigurationModule(resolver); builder.RegisterModule(sut); var container = builder.Build(); container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount + 3); container.Should().HaveRegistered <ICollection <Location> >(); container.Should().HaveRegistered <Collection <Location> >(); var config = container.Resolve <ICollection <Location> >(); container.Resolve <Collection <Location> >().Should().BeSameAs(config); }