public void Should_FlattenValueSettingsNode(string name) { var settingsNode = new ObjectNode("root", new [] { new ValueNode(name, "testValue") }); var expectedFlatteringResult = new Dictionary <string, string> { { name, "testValue" } }; var actualFlatteringResult = settingsNode.Flatten(); actualFlatteringResult.Should().BeEquivalentTo(expectedFlatteringResult); }
public void Should_FlattenSimpleObjectNode(string name, int childValuesAmount) { var expectedNames = RandomStringGenerator.CreateStrings(childValuesAmount, 16); var expectedValues = RandomStringGenerator.CreateStrings(childValuesAmount, 16); var childNodes = expectedNames.Zip(expectedValues, (s, s1) => new ValueNode(s, s1)).ToList(); var settingsNode = new ObjectNode("root", new [] { new ObjectNode(name, childNodes) }); var expectedFlatteringResult = childNodes.ToDictionary( s => $"{name}:{s.Name}".TrimStart(':'), s => s.Value); var actualFlatteringResult = settingsNode.Flatten(); actualFlatteringResult.Should().BeEquivalentTo(expectedFlatteringResult); }
public void Flatten_should_deal_with_object_node_hierarchies_by_merging_names() { var node = new ObjectNode(null, new ISettingsNode[] { new ObjectNode("foo", new ISettingsNode[] { new ObjectNode("bar", new ISettingsNode[] { new ValueNode("k1", "v1"), new ValueNode("k2", "v2"), new ValueNode(string.Empty, "foo-bar-value") }), new ObjectNode("baz", new ISettingsNode[] { new ValueNode("k1", "v1"), new ValueNode("k2", "v2") }), new ValueNode(string.Empty, "foo-value"), }), new ObjectNode("bar", new ISettingsNode[] { new ObjectNode("baz", new ISettingsNode[] { new ValueNode("k1", "v1"), new ValueNode("k2", "v2") }), new ValueNode(string.Empty, "bar-value"), }) }); var dictionary = node.Flatten(); dictionary.Should().HaveCount(9); dictionary["foo"].Should().Equal("foo-value"); dictionary["foo/bar"].Should().Equal("foo-bar-value"); dictionary["foo/bar/k1"].Should().Equal("v1"); dictionary["foo/bar/k2"].Should().Equal("v2"); dictionary["foo/baz/k1"].Should().Equal("v1"); dictionary["foo/baz/k2"].Should().Equal("v2"); dictionary["bar"].Should().Equal("bar-value"); dictionary["bar/baz/k1"].Should().Equal("v1"); dictionary["bar/baz/k2"].Should().Equal("v2"); }
public void Should_FlattenNestedObjectSettingsNode(string rootNodeName, string nestedNodeName, string expectedPrefix, int childCount) { var childNames = RandomStringGenerator.CreateStrings(childCount, 16); var expectedValues = RandomStringGenerator.CreateStrings(childCount, 16); var childNodes = childNames.Zip(expectedValues, (s, s1) => new ValueNode(s, s1)).ToList(); var nestedNode = new ObjectNode(nestedNodeName, childNodes); var settingsNode = new ObjectNode(rootNodeName, new[] { nestedNode }); var expectedFlatteringResult = childNodes.ToDictionary( s => $"{expectedPrefix}:{s.Name}".TrimStart(':'), s => s.Value ); var actualFlatteringResult = settingsNode.Flatten(); actualFlatteringResult.Should().BeEquivalentTo(expectedFlatteringResult); }
public void Should_FlattenNestedArraySettingsNode(string rootNodeName, string nestedNodeName, string expectedPrefix, int arrayLength) { var expectedValues = RandomStringGenerator.CreateStrings(arrayLength, 16); var childNodes = expectedValues.Select(s => new ValueNode(s)).ToList(); var arrayNode = new ArrayNode(nestedNodeName, childNodes); var settingsNode = new ObjectNode(rootNodeName, new[] { arrayNode }); var expectedFlatteringResult = new Dictionary <string, string>(); for (var i = 0; i < arrayLength; i++) { expectedFlatteringResult[$"{expectedPrefix}:{i}".TrimStart(':')] = expectedValues[i]; } var actualFlatteringResult = settingsNode.Flatten(); actualFlatteringResult.Should().BeEquivalentTo(expectedFlatteringResult); }