public void should_add_and_get_unamed_node_on_an_array_and_variable(NodeType type) { var metadata = new Metadata(new object()); var node = new Node { NodeType = type }; node.ShouldExecuteCallback<INode>( (x, c) => node.Add(NodeType.Value, metadata, c), x => { x.IsNamed.ShouldBeFalse(); x.NodeType.ShouldEqual(NodeType.Value); x.Metadata.ShouldNotBeSameAs(metadata); x.Metadata.Get<object>().ShouldBeSameAs(metadata.Get<object>()); node.ShouldContainInstance(x); }); node.ShouldExecuteCallback<INode>( (x, c) => node.Add(NodeType.Object, metadata, c), x => { x.IsNamed.ShouldBeFalse(); x.NodeType.ShouldEqual(NodeType.Object); x.Metadata.ShouldNotBeSameAs(metadata); x.Metadata.Get<object>().ShouldBeSameAs(metadata.Get<object>()); node.ShouldContainInstance(x); }); node.ShouldExecuteCallback<INode>( (x, c) => node.Add(NodeType.Array, metadata, c), x => { x.IsNamed.ShouldBeFalse(); x.NodeType.ShouldEqual(NodeType.Array); x.Metadata.ShouldNotBeSameAs(metadata); x.Metadata.Get<object>().ShouldBeSameAs(metadata.Get<object>()); node.ShouldContainInstance(x); }); }