Пример #1
0
        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);
                });
        }