public void AddContextProviderMethodHappyPath()
        {
            var builder = new TestLoggerBuilder();

            IDependency dependency = new ConcreteDependency();
            int         setting    = 123;

            var serviceProvider = new ServiceCollection()
                                  .AddSingleton(dependency)
                                  .BuildServiceProvider();

            builder.AddContextProvider <TestContextProvider>(setting);

            var registration =
                builder.ContextProviderRegistrations.Should().ContainSingle()
                .Subject;

            var contextProvider = registration.Invoke(serviceProvider);

            var testContextProvider =
                contextProvider.Should().BeOfType <TestContextProvider>()
                .Subject;

            testContextProvider.Setting.Should().Be(setting);
            testContextProvider.Dependency.Should().BeSameAs(dependency);
        }
        public void AddFileLogProviderMethod3HappyPath()
        {
            var builder = new TestLoggerBuilder();

            IDependency dependency = new ConcreteDependency();
            int         setting    = 123;
            var         file       = "c:\\foobar";

            var serviceProvider = new ServiceCollection()
                                  .AddSingleton(dependency)
                                  .BuildServiceProvider();

            builder.AddFileLogProvider <TestLogFormatter>(file, LogLevel.Info, logFormatterParameters: setting);

            var registration =
                builder.LogProviderRegistrations.Should().ContainSingle()
                .Subject;

            var logProvider = registration.Invoke(serviceProvider);

            var fileLogProvider =
                logProvider.Should().BeOfType <FileLogProvider>()
                .Subject;

            fileLogProvider.Level.Should().Be(LogLevel.Info);
            fileLogProvider.File.Should().Be(file);

            var formatter =
                fileLogProvider.Formatter.Should().BeOfType <TestLogFormatter>()
                .Subject;

            formatter.Dependency.Should().BeSameAs(dependency);
            formatter.Setting.Should().Be(setting);
        }
        public void AddRollingFileLogProviderMethod3HappyPath()
        {
            var builder = new TestLoggerBuilder();

            IDependency dependency = new ConcreteDependency();
            int         setting    = 123;
            var         file       = "c:\\foobar";

            var serviceProvider = new ServiceCollection()
                                  .AddSingleton(dependency)
                                  .BuildServiceProvider();

            builder.AddRollingFileLogProvider <TestLogFormatter>(file, LogLevel.Info,
                                                                 maxFileSizeKilobytes: 123, maxArchiveCount: 456, rolloverPeriod: RolloverPeriod.Hourly,
                                                                 logFormatterParameters: setting);

            var registration =
                builder.LogProviderRegistrations.Should().ContainSingle()
                .Subject;

            var logProvider = registration.Invoke(serviceProvider);

            var rollingFileLogProvider =
                logProvider.Should().BeOfType <RollingFileLogProvider>()
                .Subject;

            rollingFileLogProvider.Level.Should().Be(LogLevel.Info);
            rollingFileLogProvider.File.Should().Be(file);
            rollingFileLogProvider.MaxFileSizeBytes.Should().Be(123 * 1024);
            rollingFileLogProvider.MaxArchiveCount.Should().Be(456);
            rollingFileLogProvider.RolloverPeriod.Should().Be(RolloverPeriod.Hourly);

            var formatter =
                rollingFileLogProvider.Formatter.Should().BeOfType <TestLogFormatter>()
                .Subject;

            formatter.Dependency.Should().BeSameAs(dependency);
            formatter.Setting.Should().Be(setting);
        }
Exemple #4
0
 public ClassWithConcreteDependency(ConcreteDependency dependency)
 {
     this.dependency = dependency;
 }
Exemple #5
0
 public ClassWithConcreteDependency(ConcreteDependency dependency)
 {
     this.dependency = dependency;
 }