Example #1
0
        public static void Main()
        {
            try
            {
                IConfigurationProvider configurationProvider = new ConfigFileConfigurationProvider();

                long numberOfFileToUpdate = 0;
                long numberOfFileUpdated  = 0;

                CopyReportStrategy copyReportStrategy = new CopyReportStrategy();
                copyReportStrategy.OnFileProcessed += (sender, args) => numberOfFileToUpdate++;

                FileCopyStrategy fileCopyStrategy = new FileCopyStrategy();
                fileCopyStrategy.OnFileProcessed += (sender, args) =>
                {
                    numberOfFileUpdated++;
                    Console.WriteLine(
                        $"[{numberOfFileUpdated} / {numberOfFileToUpdate}] ({(numberOfFileUpdated / (double)numberOfFileToUpdate):P})");
                };

                FileProcessingStrategyBase[] strategies = { copyReportStrategy, fileCopyStrategy };

                FileSystemProcessor fileSystemProcessor = new FileSystemProcessor(configurationProvider, strategies);
                fileSystemProcessor.Run();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadLine();
        }
 public void WhenNoConfigMockIsProvidedShouldReturnNullLogger()
 {
     ConfigFileConfigurationProvider sut = new ConfigFileConfigurationProvider();
     ILogger result = sut.GetLogger();
     result.Should()
         .BeOfType<NullLogger>("because we default to the null logger is the config file cannot be read");
 }
Example #3
0
        public void WhenNoConfigMockIsProvidedShouldReturnNullLogger()
        {
            ConfigFileConfigurationProvider sut = new ConfigFileConfigurationProvider();
            ILogger result = sut.GetLogger();

            result.Should()
            .BeOfType <NullLogger>("because we default to the null logger is the config file cannot be read");
        }
Example #4
0
        public void WhenPassingNoConfigShouldReturnFalse()
        {
            ConfigFileConfigurationProvider sut = new ConfigFileConfigurationProvider();
            LogAttribute attribute = new LogAttribute();

            bool shouldLog = sut.ShouldLog(attribute);

            shouldLog.Should().Be(false);
        }
        async Task MigrateFile(string file)
        {
            var fileName = Path.GetFileName(file);

            try
            {
                //based on https://github.com/aspnet/Entropy/tree/7c027069b715a4b2ffd126f58def04c6111925c3/samples/Config.CustomConfigurationProviders.Sample
                Console.WriteLine($"Migrating {fileName}...");

                var parsersToUse = new List <IConfigurationParser> {
                    new KeyValueParser(),
                    new KeyValueParser("name", "connectionString")
                };

                var provider = new ConfigFileConfigurationProvider(file, loadFromFile: true, optional: false, Console, parsersToUse);
                provider.Load();
                var keyValues = provider.GetFullKeyNames(null, new HashSet <string>())
                                .Select(key =>
                {
                    provider.TryGet(key, out var value);

                    var newKey = string.IsNullOrEmpty(SectionDelimiter)
                            ? key
                            : key.Replace(SectionDelimiter, ":", StringComparison.OrdinalIgnoreCase);
                    return(new KeyValuePair <string, string>(newKey, value));
                });

                var config = new ConfigurationBuilder()
                             .AddInMemoryCollection(keyValues)
                             .Build();

                var jsonObject = GetConfigAsJObject(config);

                if (!string.IsNullOrEmpty(Prefix))
                {
                    jsonObject = new JObject {
                        { Prefix, jsonObject }
                    };
                }

                //write to file
                var newPath  = Path.ChangeExtension(file, "json");
                var contents = JsonConvert.SerializeObject(jsonObject, Formatting.Indented);
                await File.WriteAllTextAsync(newPath, contents);

                Console.WriteLine($"Migration of {fileName} to {Path.GetFileName(newPath)} complete");
            }
            catch (System.Exception ex)
            {
                Console.WriteLine($"An error occurred migrating {fileName}: ");
                Console.WriteLine(ex);
            }
        }
        public void WhenPassingInAConfigurationWithConsoleLoggerOnShouldReturnConnsoleLogger()
        {
            ConfigFileConfigurationProvider sut = new ConfigFileConfigurationProvider();
            Mock<IConfigFileSource> mock = new Mock<IConfigFileSource>();
            mock.Setup(source => source.UseConsoleLogger).Returns(true);
            mock.Setup(source => source.IsEnabled).Returns(true);
            sut.ConfigFileSource = mock.Object;

            ILogger result = sut.GetLogger();

            result.Should().BeOfType<ConsoleLogger>("because we set up a configuration that uses the console logger");
        }
Example #7
0
        public void WhenPassingInAConfigurationWithConsoleLoggerOnShouldReturnConnsoleLogger()
        {
            ConfigFileConfigurationProvider sut  = new ConfigFileConfigurationProvider();
            Mock <IConfigFileSource>        mock = new Mock <IConfigFileSource>();

            mock.Setup(source => source.UseConsoleLogger).Returns(true);
            mock.Setup(source => source.IsEnabled).Returns(true);
            sut.ConfigFileSource = mock.Object;

            ILogger result = sut.GetLogger();

            result.Should().BeOfType <ConsoleLogger>("because we set up a configuration that uses the console logger");
        }
Example #8
0
        public void WhenPassingADisabledConfigShouldReturnFalse()
        {
            ConfigFileConfigurationProvider sut  = new ConfigFileConfigurationProvider();
            Mock <IConfigFileSource>        mock = new Mock <IConfigFileSource>();

            mock.Setup(source => source.IsEnabled).Returns(false);
            sut.ConfigFileSource = mock.Object;

            LogAttribute attribute = new LogAttribute();

            bool shouldLog = sut.ShouldLog(attribute);

            shouldLog.Should().Be(false);
        }
Example #9
0
        public void WhenPassingAnEnabledConfigShouldReturnTrue()
        {
            ConfigFileConfigurationProvider sut  = new ConfigFileConfigurationProvider();
            Mock <IConfigFileSource>        mock = new Mock <IConfigFileSource>();

            mock.Setup(source => source.IsEnabled).Returns(true);
            mock.Setup(source => source.Tags).Returns(new TagCollection());
            sut.ConfigFileSource = mock.Object;

            LogAttribute attribute = new LogAttribute();

            bool shouldLog = sut.ShouldLog(attribute);

            shouldLog.Should().Be(true);
        }
        public void WhenPassingInAConfigurationWithCustomLoggerAndTheConsoleLoggerShouldThrowConfigurationErrorException()
        {
            ILogger result = null;

            ConfigFileConfigurationProvider sut = new ConfigFileConfigurationProvider();
            Mock<IConfigFileSource> mock = new Mock<IConfigFileSource>();
            mock.Setup(source => source.Logger).Returns("NullLogger");
            mock.Setup(source => source.UseConsoleLogger).Returns(true);
            mock.Setup(source => source.IsEnabled).Returns(true);
            sut.ConfigFileSource = mock.Object;
            try
            {
                result = sut.GetLogger();
            }
            catch (Exception exception)
            {
                exception.Should()
                    .BeOfType<ConfigurationErrorsException>("because we set up a configuration that has both a custom logger and the flag to use the console logger");
            }

            result.Should().BeNull("because we threw an exception");
        }
Example #11
0
        public void WhenPassingInAConfigurationWithCustomLoggerAndTheConsoleLoggerShouldThrowConfigurationErrorException()
        {
            ILogger result = null;

            ConfigFileConfigurationProvider sut  = new ConfigFileConfigurationProvider();
            Mock <IConfigFileSource>        mock = new Mock <IConfigFileSource>();

            mock.Setup(source => source.Logger).Returns("NullLogger");
            mock.Setup(source => source.UseConsoleLogger).Returns(true);
            mock.Setup(source => source.IsEnabled).Returns(true);
            sut.ConfigFileSource = mock.Object;
            try
            {
                result = sut.GetLogger();
            }
            catch (Exception exception)
            {
                exception.Should()
                .BeOfType <ConfigurationErrorsException>("because we set up a configuration that has both a custom logger and the flag to use the console logger");
            }

            result.Should().BeNull("because we threw an exception");
        }
Example #12
0
        public void WhenPassingInAConfigurationWithAnInvalidLoggerShouldThrowException()
        {
            ConfigFileConfigurationProvider sut  = new ConfigFileConfigurationProvider();
            Mock <IConfigFileSource>        mock = new Mock <IConfigFileSource>();

            mock.Setup(source => source.Logger).Returns("NonViableType");
            mock.Setup(source => source.UseConsoleLogger).Returns(false);
            mock.Setup(source => source.IsEnabled).Returns(true);
            sut.ConfigFileSource = mock.Object;

            ILogger result = null;

            try
            {
                result = sut.GetLogger();
            }
            catch (Exception e)
            {
                e.Should().BeOfType <ConfigurationErrorsException>();
            }

            result.Should().BeNull("Because an exception has been thrown");
        }
        public void WhenPassingInAConfigurationWithNoViableLoggersShouldThrowException()
        {
            ConfigFileConfigurationProvider sut = new ConfigFileConfigurationProvider();
            Mock<IConfigFileSource> mock = new Mock<IConfigFileSource>();
            mock.Setup(source => source.Logger).Returns(string.Empty);
            mock.Setup(source => source.UseConsoleLogger).Returns(false);
            mock.Setup(source => source.IsEnabled).Returns(true);
            sut.ConfigFileSource = mock.Object;

            ILogger result = null;
            try
            {
                result = sut.GetLogger();
            }
            catch (Exception e)
            {
                e.Should().BeOfType<ConfigurationErrorsException>();
            }

            result.Should().BeNull("Because an exception has been thrown");
        }
        public void WhenPassingAnEnabledConfigWithANominalTagShouldReturnTrue()
        {
            ConfigFileConfigurationProvider sut = new ConfigFileConfigurationProvider();
            Mock<IConfigFileSource> mock = new Mock<IConfigFileSource>();
            mock.Setup(source => source.IsEnabled).Returns(true);
            TagCollection tagCollection = new TagCollection();
            mock.Setup(source => source.Tags).Returns(tagCollection);
            sut.ConfigFileSource = mock.Object;

            LogAttribute attribute = new LogAttribute();

            bool shouldLog = sut.ShouldLog(attribute);

            shouldLog.Should().Be(true);
        }
        public void WhenPassingADisabledConfigShouldReturnFalse()
        {
            ConfigFileConfigurationProvider sut = new ConfigFileConfigurationProvider();
            Mock<IConfigFileSource> mock = new Mock<IConfigFileSource>();
            mock.Setup(source => source.IsEnabled).Returns(false);
            sut.ConfigFileSource = mock.Object;

            LogAttribute attribute = new LogAttribute();

            bool shouldLog = sut.ShouldLog(attribute);

            shouldLog.Should().Be(false);
        }
        public void WhenPassingNoConfigShouldReturnFalse()
        {
            ConfigFileConfigurationProvider sut = new ConfigFileConfigurationProvider();
            LogAttribute attribute = new LogAttribute();

            bool shouldLog = sut.ShouldLog(attribute);

            shouldLog.Should().Be(false);
        }