public void WasChangedExternally_WhenFileWasModified_ReturnsTrueUntilLoadIsPerformed() { using (var file = TestFileName.Create("x", Toml.FileExtension)) { // Arrange File.WriteAllText(file, "x=0"); var cfg = new FileConfigStore(TomlSettings.DefaultInstance, file); cfg.Load(); using (var sw = File.AppendText(file)) { sw.WriteLine(); sw.WriteLine("y=1"); } // Act var r1 = cfg.WasChangedExternally(); var r2 = cfg.WasChangedExternally(); cfg.Load(); var r3 = cfg.WasChangedExternally(); // Assert r1.Should().Be(true); r2.Should().Be(true); r3.Should().Be(false); } }
public void TransformToSourceTable_ProducesCorrectTable() { using (var scenario = MultiLevelTableScenario.Setup()) { // Act var src = new FileConfigStore(TomlSettings.DefaultInstance, "test", "test"); var sourceTable = scenario.Table.TransformToSourceTable(src); // Assert sourceTable.Get <IConfigSource>(nameof(scenario.Clr.X)).Should().BeSameAs(src); var sub = sourceTable.Get <TomlTable>(nameof(scenario.Clr.Sub)); sub.Get <IConfigSource>(nameof(scenario.Clr.Sub.Y)).Should().BeSameAs(src); } }
public Config <GitConfig> CreateMergedFromDefaultsWithExplicitFileStore() { var sys = new FileConfigStore(TomlSettings.DefaultInstance, this.SystemFile); var user = new FileConfigStore(TomlSettings.DefaultInstance, this.UserFile); var repo = new FileConfigStore(TomlSettings.DefaultInstance, this.RepoFile); return(Config.CreateAs() .MappedToType(() => new GitConfig()) .StoredAs(store => store .File(this.SystemFile).AsSourceWithName(this.SystemSourceName) .MergeWith().File(this.UserFile).AsSourceWithName(this.UserSourceName) .MergeWith().File(this.RepoFile).AsSourceWithName(this.RepoSourceName)) .Initialize()); }
public void WasChangedExternally_WhenThereWasNoModification_ReturnsFalse() { using (var file = TestFileName.Create("x", Toml.FileExtension)) { // Arrange File.WriteAllText(file, "x=0"); var cfg = new FileConfigStore(TomlSettings.DefaultInstance, file); cfg.Load(); // Act var r = cfg.WasChangedExternally(); // Assert r.Should().Be(false); } }
public void WasChangedExternally_WhenFileWasNotLoadedAtLeastOnce_WillAlwaysReturnTrue() { using (var file = TestFileName.Create("x", Toml.FileExtension)) { // Arrange File.WriteAllText(file, "x=0"); var cfg = new FileConfigStore(TomlSettings.DefaultInstance, file); // Act var r1 = cfg.WasChangedExternally(); var r2 = cfg.WasChangedExternally(); // Assert r1.Should().Be(true); r2.Should().Be(true); } }
public void Save_UpdatesInMemoryConfigSoNextLoadWillDeliverThatConfig() { using (var fn = TestFileName.Create("file", Toml.FileExtension)) { // Arrange var fc = new FileConfigStore(TomlSettings.DefaultInstance, fn); var oc = new ConfigStoreWithSource(new ConfigSource(fn), fc); File.WriteAllText(fn, "X = 1"); oc.Load(); // At least one load needs to be done, otherwise a load will be done because not any data was loaded yet // Act oc.Save(Toml.ReadString("X = 2")); // Assert var readBack = oc.Load(); ((TomlInt)readBack["X"]).Value.Should().Be(2); } }