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"); }
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"); }
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"); }
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"); }
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 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"); }
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"); }
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); }