public async Task ShouldUseBaseValueWhenConflict()
        {
            //Arrange
            var doc             = ConfigDocument.Load(SrcConfig);
            var includeProvider = new TestIncludeProvider(IncludeSimple);

            //Act
            await doc.ApplyIncludes(includeProvider);

            var res = TestModel.Create(doc);

            //Assert
            Assert.Equal("from-base-val", res.IncludeConflict);
        }
        public async Task ShouldResolveIncludes()
        {
            //Arrange
            var doc             = ConfigDocument.Load(SrcConfig);
            var includeProvider = new TestIncludeProvider(IncludeSimple);

            //Act
            await doc.ApplyIncludes(includeProvider);

            var res = TestModel.Create(doc);

            //Assert
            Assert.Equal("from-include-val", res.Included);
        }
        public async Task ShouldIncludeOneItemArray()
        {
            //Arrange
            const string includeArray =
                "{" +
                "\"IncludedArray\":[\"foo\"]," +
                "\"IncludeConflict\":\"from-include-val\"" +
                "}";
            var doc             = ConfigDocument.Load(SrcConfig);
            var includeProvider = new TestIncludeProvider(includeArray);

            //Act
            await doc.ApplyIncludes(includeProvider);

            var res = TestModel.Create(doc);

            //Assert
            Assert.NotNull(res.IncludedArray);
            Assert.Single(res.IncludedArray);
            Assert.Equal("foo", res.IncludedArray[0]);
        }