public void UpdatesPropertiesBasedOnWhatIsStored()
        {
            var testSettingsGroup = new TestSettingsGroup
            {
                TestProperty = false,
                TestString   = "test value"
            };

            testSettingsGroup.SettingsStore["TestProperty"] = true;
            testSettingsGroup.SettingsStore["TestString"]   = "new test value";

            testSettingsGroup.UpdatePropertiesFromStore();

            Assert.True(testSettingsGroup.TestProperty);
            Assert.Equal("new test value", testSettingsGroup.TestString);
        }
        public void SavesChangedProperties()
        {
            var testSettingsGroup = new TestSettingsGroup();

            Assert.False(testSettingsGroup.SettingsStore.TryGetValue("TestProperty", out var _));
            Assert.False(testSettingsGroup.SettingsStore.TryGetValue("TestString", out var _));

            testSettingsGroup.TestProperty = true;
            testSettingsGroup.TestString   = "first test value";

            Assert.True((bool)testSettingsGroup.SettingsStore["TestProperty"]);
            Assert.Equal("first test value", (string)testSettingsGroup.SettingsStore["TestString"]);

            testSettingsGroup.TestProperty = false;
            testSettingsGroup.TestString   = "second test value";

            Assert.False((bool)testSettingsGroup.SettingsStore["TestProperty"]);
            Assert.Equal("second test value", (string)testSettingsGroup.SettingsStore["TestString"]);

            testSettingsGroup.TestString = null;

            Assert.Null(testSettingsGroup.SettingsStore["TestString"]);
        }