public void Test_service_singleton_mapping_should_work() { /* Arrange */ var cfg = new ConfigWithBasicProps(); /* Act */ cfg.MapSingletonInstance(); var res1 = ConfigMaster.GetSettings<ConfigWithBasicProps>(); cfg.UnmapSingletonInstance(); var res2 = ConfigMaster.GetSettings<ConfigWithBasicProps>(); /* Assert */ res1.Should().BeSameAs(cfg); res2.Should().BeNull(); }
public void Setting_a_section_multiple_times_should_only_set_the_last_value() { /* Arrange */ var doc = TestConfigFactory.CreateConfig(); var p = A.Fake<IConfigProvider>(); A.CallTo(() => p.LoadConfig()).Returns(new[] { doc }); var settingsOne = new ConfigWithBasicProps { StringValue = "One" }; var settingsTwo = new ConfigWithBasicProps { StringValue = "Two" }; /* Act */ var mgr = ConfigManager.Create(p); mgr.SetSettings(TestSection.SectionOne, settingsOne); mgr.SetSettings(TestSection.SectionOne, settingsOne); mgr.SetSettings(TestSection.SectionOne, settingsTwo); var readSectionOne = mgr.GetSettings<ConfigWithBasicProps>(TestSection.SectionOne); int sectionCount = mgr.Sections.Count(); /* Assert */ A.CallTo(() => p.SaveConfig(doc)).MustNotHaveHappened(); readSectionOne.Should().NotBeNull(); readSectionOne.ShouldBeEquivalentTo(settingsTwo); sectionCount.Should().Be(1); }
public void Setting_and_getting_complex_settings_should_work() { /* Arrange */ var doc = TestConfigFactory.CreateConfig(); var p = A.Fake<IConfigProvider>(); A.CallTo(() => p.LoadConfig()).Returns(new[] { doc }); var settingsOne = new ConfigWithBasicProps { StringValue = "One" }; var settingsTwo = new ConfigWithBasicProps { StringValue = "Two" }; var settingsThree = new ConfigComplex { Name = "Three" }; /* Act */ var mgr = ConfigManager.Create(p); mgr.MonitorEvents(); mgr.SetSettings(TestSection.SectionOne, settingsOne); mgr.SetSettings(settingsTwo); mgr.SetSettings(settingsThree); var readSectionOne = mgr.GetSettings<ConfigWithBasicProps>(TestSection.SectionOne); var readSectionTwo = mgr.GetSettings<ConfigWithBasicProps>(); var allBasics = mgr.GetSettingsList<ConfigWithBasicProps>(); mgr.Reload(); var readSectionOneAfterReload = mgr.GetSettings<ConfigWithBasicProps>(TestSection.SectionOne); var readSectionTwoAfterReload = mgr.GetSettings<ConfigWithBasicProps>(); int sectionCount = mgr.Sections.Count(); /* Assert */ A.CallTo(() => p.SaveConfig(doc)).MustNotHaveHappened(); readSectionOne.Should().NotBeNull(); readSectionOne.Should().NotBeSameAs(settingsOne); readSectionOne.ShouldBeEquivalentTo(settingsOne); readSectionTwo.Should().NotBeNull(); readSectionTwo.Should().NotBeSameAs(settingsTwo); readSectionTwo.ShouldBeEquivalentTo(settingsTwo); readSectionOneAfterReload.Should().NotBeNull(); readSectionOneAfterReload.ShouldBeEquivalentTo(settingsOne); readSectionTwoAfterReload.Should().NotBeNull(); readSectionTwoAfterReload.ShouldBeEquivalentTo(settingsTwo); allBasics.Count.Should().Be(2); sectionCount.Should().Be(3); mgr.ShouldRaise("ConfigChanged").WithArgs<ConfigChangedEventArgs>(e => e.SectionName == "SectionOne" && e.Cause == ConfigChangedEventArgs.ChangeCause.SectionChanged && e.SectionType == typeof(ConfigWithBasicProps)); mgr.ShouldRaise("ConfigChanged").WithArgs<ConfigChangedEventArgs>(e => e.SectionName == "ConfigWithBasicProps" && e.Cause == ConfigChangedEventArgs.ChangeCause.SectionChanged); mgr.ShouldRaise("ConfigChanged").WithArgs<ConfigChangedEventArgs>(e => e.SectionName == "ConfigComplex" && e.Cause == ConfigChangedEventArgs.ChangeCause.SectionChanged); }
public void Section_removal_should_work() { /* Arrange */ var doc = TestConfigFactory.CreateConfig(); var p = A.Fake<IConfigProvider>(); A.CallTo(() => p.LoadConfig()).Returns(new[] { doc }); var settingsOne = new ConfigWithBasicProps { StringValue = "One" }; /* Act */ var mgr = ConfigManager.Create(p); mgr.MonitorEvents(); mgr.SetSettings(TestSection.SectionOne, settingsOne); mgr.SetSettings(TestSection.SectionTwo, settingsOne); bool existsPre = mgr.HasSection(TestSection.SectionOne); mgr.RemoveSection(TestSection.SectionOne); mgr.RemoveSection("NoSuchSection"); mgr.RemoveSection((Enum)null); mgr.RemoveSection(string.Empty); bool existsPost = mgr.HasSection(TestSection.SectionOne); var readSectionOne = mgr.GetSettings<ConfigWithBasicProps>(TestSection.SectionOne); int sectionCount = mgr.Sections.Count(); /* Assert */ A.CallTo(() => p.SaveConfig(doc)).MustNotHaveHappened(); readSectionOne.Should().BeNull(); existsPre.Should().BeTrue(); existsPost.Should().BeFalse(); sectionCount.Should().Be(1); mgr.ShouldRaise("ConfigChanged").WithArgs<ConfigChangedEventArgs>(e => e.SectionName == "SectionOne" && e.Cause == ConfigChangedEventArgs.ChangeCause.SectionRemoved); }
public void Has_section_should_work() { /* Arrange */ var doc = TestConfigFactory.CreateConfig(); var p = A.Fake<IConfigProvider>(); A.CallTo(() => p.LoadConfig()).Returns(new[] { doc }); var settingsOne = new ConfigWithBasicProps { StringValue = "One" }; /* Act */ var mgr = ConfigManager.Create(p); mgr.SetSettings(settingsOne); bool exists = mgr.HasSection<ConfigWithBasicProps>(); /* Assert */ exists.Should().BeTrue(); }
public ConfigSilly(ConfigWithBasicProps getOnlyProp) { _getOnlyProp = getOnlyProp; }