public void should_ignore_a_node_that_implements_inode_but_not_the_same_type_as_the_member() { var instance = new NodeInsertion(); var parent = CreateAccessModifierNode(value: new SimpleValue(instance, typeof(NodeInsertion).ToCachedType())); var child = new Node("JsonNode"); parent.ShouldNotExecuteCallback<INode>((s, c) => s.Add(child, c)); var jsonNode = parent.GetNode("JsonNode"); jsonNode.ShouldNotBeNull(); jsonNode.ShouldNotBeSameAs(child); jsonNode.NodeType.ShouldEqual(NodeType.Value); jsonNode.Value.ShouldBeNull(); instance.JsonNode.ShouldBeNull(); }
public void should_insert_a_node_matching_on_configured_case_comparison( StringComparison comparison, string name) { var instance = new NodeInsertion(); var parent = CreateAccessModifierNode(Options.Create(x => x.Deserialization(y => y.WithNameComparison(comparison))), new SimpleValue(instance, typeof(NodeInsertion).ToCachedType())); var child = new Node(name); parent.ShouldNotExecuteCallback<INode>((s, c) => s.Add(child, c)); parent.GetNode(name).ShouldBeSameAs(child); instance.NodeInterface.ShouldBeSameAs(child); }
public void should_insert_a_node_into_a_member_of_the_same_type() { var instance = new NodeInsertion(); var parent = CreateAccessModifierNode(value: new SimpleValue(instance, typeof(NodeInsertion).ToCachedType())); var child = new Node("Node"); parent.ShouldNotExecuteCallback<INode>((s, c) => s.Add(child, c)); parent.GetNode("Node").ShouldBeSameAs(child); instance.Node.ShouldBeSameAs(child); }
public void should_insert_any_node_into_an_inode_member() { var instance = new NodeInsertion(); var parent = CreateNode(value: new SimpleValue(instance, typeof(NodeInsertion).ToCachedType())); var child = new Node("NodeInterface"); parent.ShouldNotExecuteCallback<INode>((s, c) => s.Add(child, c)); parent.GetNode("NodeInterface").ShouldBeSameAs(child); instance.NodeInterface.ShouldBeSameAs(child); }