public void TestSave()
        {
            object obj1 = new object();
            object obj2 = new object();

            List <object> list = new List <object>
            {
                obj1,
                null,
                obj2,
            };

            OperationContext context = Exemplars.SaveContext;

            wrapper.Save(obj1, context).Returns(new TestConfigNode("SOME_NODE")
            {
                { "value", "blah1" },
            });
            wrapper.Save(obj2, context).Returns(new TestConfigNode("SOME_NODE")
            {
                { "value", "blah2" },
            });

            ConfigNode node = new TestConfigNode
            {
                { "value", "something" },
                new ConfigNode("SOME_OTHER_NODE"),
            };

            Assert.True(mapper.Save(list, node, context));

            ConfigNode expected = new TestConfigNode
            {
                { "value", "something" },
                new ConfigNode("SOME_OTHER_NODE"),
                new TestConfigNode("SOME_NODE")
                {
                    { "value", "blah1" },
                },
                new TestConfigNode("SOME_NODE")
                {
                    { "value", "blah2" },
                }
            };

            AssertUtil.ConfigNodesEqual(expected, node);
        }
        public void TestSave()
        {
            object           dummy     = new object();
            OperationContext context   = Exemplars.SaveContext;
            ConfigNode       innerNode = new ConfigNode();
            ConfigNode       outerNode = new ConfigNode();

            wrapper.Save(dummy, context).Returns(innerNode);
            Assert.True(mapper.Save(dummy, outerNode, context));
            wrapper.Received().Save(dummy, context);

            Assert.Same(innerNode, outerNode.GetNode("SOME_NODE"));
        }
Example #3
0
        public bool Save(object fieldValue, ConfigNode node, OperationContext context)
        {
            node.ThrowIfNullArgument(nameof(node));
            context.ThrowIfNullArgument(nameof(context));

            if (fieldValue.IsNull())
            {
                return(false);
            }

            ConfigNode innerNode = nodeObjectWrapper.Save(fieldValue, context);

            node.AddNode(name, innerNode);
            return(true);
        }
Example #4
0
        public bool Save(object fieldValue, ConfigNode node, OperationContext context)
        {
            fieldValue.EnsureArgumentType(listType, nameof(fieldValue));
            node.ThrowIfNullArgument(nameof(node));
            context.ThrowIfNullArgument(nameof(context));

            IList list = (IList)fieldValue;

            if (list.IsNullOrEmpty())
            {
                return(false);
            }

            foreach (object value in list)
            {
                if (value.IsNull())
                {
                    continue;
                }
                node.AddNode(name, nodeObjectWrapper.Save(value, context));
            }

            return(true);
        }