Example #1
0
        public void Execute_ShouldSkipRegisterServices_IfAnyOfRequiredConfigurationNotPass()
        {
            var configuration = new ConfigurationBuilder().AddInMemoryCollection(
                new Dictionary <string, string>()
            {
                { "FakeConfiguration:PropertyOne", "RandomValue" },
                { "AzureServices:HatDetection:ProjectId", Guid.NewGuid().ToString() }
            }).Build();

            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <IConfiguration>(configuration);
            serviceCollection.AddSingleton <ILogger>(NullLogger.Instance);
            serviceCollection.AddSingleton <IHostEnvironment>(new FakeHostEnvironment());


            var serviceRequriedConfiguration = new Dictionary <Type, string[]>()
            {
                { typeof(FakeConfigurationRequiredService), new [] { "FakeConfiguration:PropertyOne", "MissingFakeConfiguration:MissingPropertyTwo", } }
            };

            ConfigureServices.Execute(serviceCollection, configuration, serviceRequriedConfiguration);

            var provider = serviceCollection.BuildServiceProvider();

            Assert.DoesNotContain(provider.GetServices <IHostedService>().Select(x => x.GetType()), type => type == typeof(FakeConfigurationRequiredService));
        }
        public void Execute_ShouldRegitserService_WhenAllRequiredConfigurationDone()
        {
            var configuration = new ConfigurationBuilder().AddInMemoryCollection(
                new Dictionary <string, string>()
            {
                { "FakeConfiguration:PropertyOne", "RandomValue" },
                { "FakeConfiguration:PropertyTwo", "RandomValue" }
            }).Build();

            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <IConfiguration>(configuration);
            serviceCollection.AddSingleton <ILogger>(NullLogger.Instance);


            var serviceRequriedConfiguration = new Dictionary <Type, string[]>()
            {
                { typeof(FakeConfigurationRequiredService), new [] { "FakeConfiguration:PropertyOne", "FakeConfiguration:PropertyTwo", } }
            };

            ConfigureServices.Execute(serviceCollection, configuration, serviceRequriedConfiguration);

            var provider = serviceCollection.BuildServiceProvider();

            Assert.Contains(provider.GetServices <IHostedService>().Select(x => x.GetType()), type => type == typeof(FakeConfigurationRequiredService));
        }
        public void Execute_RegisterStreamServicesWithVariousConfigurations_ReturnExpected(Dictionary <string, string> configurations, Type[] expected)
        {
            // arrange
            var configuration = new ConfigurationBuilder()
                                .AddInMemoryCollection(configurations)
                                .Build();

            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <ILoggerFactory>(new LoggerFactory());

            // act
            ConfigureServices.Execute(serviceCollection, configuration);

            // assert
            var provider = serviceCollection.BuildServiceProvider();

            Assert.Equal(expected, provider.GetServices <IHostedService>().Select(x => x.GetType()));
            Assert.Equal(expected, provider.GetServices <IStreamService>().Select(x => x.GetType()));
        }