public void Can_add_children()
        {
            var settingItem = new SettingItemGroup(SettingName);
            var child       = new SettingItemGroup("ChildItem", "ChildItemValue");

            settingItem.Add(child);

            var testChild = settingItem.GetChild("ChildItem");

            Assert.NotEmpty(settingItem.Children);
            Assert.Equal <SettingItemBase>(child, testChild);
        }
        public void Setting_name_is_case_insensitive()
        {
            var settingItem = new SettingItemGroup(SettingName);
            var child       = new SettingItemGroup("ChildItem", "ChildItemValue");
            var attr        = new SettingAttributeItem("Attr1", "AttributeValue1");

            settingItem.Add(child);
            settingItem.Add(attr);

            var foundChild = settingItem.GetChild("childitem");
            var foundAttr  = settingItem.GetAttribute("attr1");

            Assert.NotNull(foundChild);
            Assert.NotNull(foundAttr);
        }
        public void Can_overwrite_value_of_existing_child()
        {
            var settingItem = new SettingItemGroup(SettingName);
            var child       = new SettingItemGroup("ChildItem", "ChildItemValue");

            settingItem.Add(child);

            var overwriteChildItem = new SettingItemGroup("ChildItem", "Overwrited");

            settingItem.Add(overwriteChildItem);

            var testChild = settingItem.GetChild("ChildItem");



            Assert.Equal <SettingItemBase>(overwriteChildItem, testChild);
        }