public void AddLoggly_uses_configuration(ILoggingBuilder builder, string apiKey)
        {
            var settings = new Dictionary <string, string>
            {
                ["ApiKey"] = apiKey
            };
            var configurationBuilder = new ConfigurationBuilder().AddInMemoryCollection(settings);
            var configuration        = configurationBuilder.Build();

            LogglyLoggingBuilderExtensions.AddLoggly(builder, configuration);

            Mock.Get(builder.Services).Verify(p => p.Add(It.Is <ServiceDescriptor>(sd => sd.ServiceType == typeof(LogglyOptions) && (sd.ImplementationInstance as LogglyOptions).ApiKey == apiKey)));
        }
        public void AddLoggly_forwards_configuration_values_to_configureOptions_delegate(ILoggingBuilder builder, Action <LogglyOptions> configureOptions, string apiKey)
        {
            var settings = new Dictionary <string, string>
            {
                ["ApiKey"] = apiKey
            };
            var configurationBuilder = new ConfigurationBuilder().AddInMemoryCollection(settings);
            var configuration        = configurationBuilder.Build();

            LogglyLoggingBuilderExtensions.AddLoggly(builder, configuration, configureOptions);

            Mock.Get(configureOptions).Verify(p => p(It.Is <LogglyOptions>(lo => lo.ApiKey == apiKey)));
        }
        public void AddLoggly_uses_configureOptions_delegate(ILoggingBuilder builder, Action <LogglyOptions> configureOptions, string apiKey)
        {
            Mock.Get(configureOptions).Setup(p => p(It.IsAny <LogglyOptions>())).Callback <LogglyOptions>(o => o.ApiKey = apiKey);

            LogglyLoggingBuilderExtensions.AddLoggly(builder, configureOptions: configureOptions);
        }
        public void AddLoggly_registers_options_with_ApiKey(ILoggingBuilder builder, [Frozen] LogglyOptions options, Func <LogglyOptions> factoryDelegate)
        {
            options.ApiKey = null;

            Assert.Throws <ArgumentNullException>(() => LogglyLoggingBuilderExtensions.AddLoggly(builder, factoryDelegate));
        }
        public void AddLoggly_registers_an_ILoggerProvider(ILoggingBuilder builder, Func <LogglyOptions> factoryDelegate)
        {
            LogglyLoggingBuilderExtensions.AddLoggly(builder, factoryDelegate);

            Mock.Get(builder.Services).Verify(p => p.Add(It.Is <ServiceDescriptor>(sd => sd.ServiceType == typeof(ILoggerProvider))));
        }
        public void AddLoggly_registers_options(ILoggingBuilder builder, [Frozen] LogglyOptions options, Func <LogglyOptions> factoryDelegate)
        {
            LogglyLoggingBuilderExtensions.AddLoggly(builder, factoryDelegate);

            Mock.Get(builder.Services).Verify(p => p.Add(It.Is <ServiceDescriptor>(sd => ReferenceEquals(sd.ImplementationInstance, options))));
        }
        public void AddLoggly_uses_factory_delegate(ILoggingBuilder builder, Func <LogglyOptions> factoryDelegate)
        {
            LogglyLoggingBuilderExtensions.AddLoggly(builder, factoryDelegate);

            Mock.Get(factoryDelegate).Verify(p => p());
        }
 public void AddLoggly_requires_FactoryDelegate(ILoggingBuilder builder)
 {
     Assert.Throws <ArgumentNullException>(() => LogglyLoggingBuilderExtensions.AddLoggly(builder, null));
 }
 public void AddLoggly_requires_ILoggingBuilder(IConfigurationSection configuration, Action <LogglyOptions> configureOptions)
 {
     Assert.Throws <ArgumentNullException>(() => LogglyLoggingBuilderExtensions.AddLoggly(null, configuration, configureOptions));
 }
 public void AddLoggly_requires_ILoggingBuilder(Func <LogglyOptions> factoryDelegate)
 {
     Assert.Throws <ArgumentNullException>(() => LogglyLoggingBuilderExtensions.AddLoggly(null, factoryDelegate));
 }