public void TestCreateMapperWithSerializePriority()
        {
            INodeDataMapperBuilder valueScalarBuilder = Substitute.For <INodeDataMapperBuilder>();
            INodeDataMapperBuilder valueListBuilder   = Substitute.For <INodeDataMapperBuilder>();
            INodeDataMapperBuilder nodeScalarBuilder  = Substitute.For <INodeDataMapperBuilder>();
            INodeDataMapperBuilder nodeListBuilder    = Substitute.For <INodeDataMapperBuilder>();

            builder.When(x => x.CreateValueScalarMapperBuilder()).DoNotCallBase();
            builder.When(x => x.CreateValueListMapperBuilder()).DoNotCallBase();
            builder.When(x => x.CreateNodeScalarMapperBuilder()).DoNotCallBase();
            builder.When(x => x.CreateNodeListMapperBuilder()).DoNotCallBase();

            builder.CreateValueScalarMapperBuilder().Returns(valueScalarBuilder);
            builder.CreateValueListMapperBuilder().Returns(valueListBuilder);
            builder.CreateNodeScalarMapperBuilder().Returns(nodeScalarBuilder);
            builder.CreateNodeListMapperBuilder().Returns(nodeListBuilder);

            INodeDataMapperBuilder[] expected = { nodeListBuilder, nodeScalarBuilder, valueListBuilder, valueScalarBuilder };

            builder.WhenForAnyArgs(x => x.BuildFromPrioritizedList(null)).DoNotCallBase();

            INodeDataMapper result = Substitute.For <INodeDataMapper>();

            builder.BuildFromPrioritizedList(expected).Returns(result);

            Assert.Same(result, builder.CreateMapperWithSerializePriority());

            builder.Received().BuildFromPrioritizedList(expected);
        }
        public void TestBuildFromPrioritizedList__Only()
        {
            INodeDataMapperBuilder builder1 = Substitute.For <INodeDataMapperBuilder>();
            INodeDataMapper        mapper   = Substitute.For <INodeDataMapper>();

            builder1.CanBuild.Returns(true);
            builder1.BuildMapper().Returns(mapper);

            Assert.Same(mapper, builder.BuildFromPrioritizedList(builder1));

            builder1.Received().BuildMapper();
        }
        public void TestCreateSerializeMapper()
        {
            INodeDataMapper mapper = Substitute.For <INodeDataMapper>();

            builder.When(x => x.CreateMapperWithSerializePriority()).DoNotCallBase();
            builder.CreateMapperWithSerializePriority().Returns(mapper);

            Assert.Same(mapper, builder.CreateSerializeMapper());

            builder.DidNotReceive().CreateMapperWithParsePriority();
            builder.Received().CreateMapperWithSerializePriority();
        }
Example #4
0
        public void Save(ConfigNode node, OperationContext context)
        {
            node.ThrowIfNullArgument(nameof(node));
            context.ThrowIfNullArgument(nameof(context));

            INodeDataMapper mapper = operationManager.MapperFor(context.Operation);

            if (mapper.IsNull())
            {
                return;
            }

            object value = field.GetValue(context.Subject);

            mapper.Save(value, node, context);
        }
        public void TestBuildFromPrioritizedList__Last()
        {
            INodeDataMapperBuilder builder1 = Substitute.For <INodeDataMapperBuilder>();
            INodeDataMapperBuilder builder2 = Substitute.For <INodeDataMapperBuilder>();
            INodeDataMapperBuilder builder3 = Substitute.For <INodeDataMapperBuilder>();

            builder1.CanBuild.Returns(false);
            builder2.CanBuild.Returns(false);
            builder3.CanBuild.Returns(true);

            INodeDataMapper mapper = Substitute.For <INodeDataMapper>();

            builder3.BuildMapper().Returns(mapper);

            Assert.Same(mapper, builder.BuildFromPrioritizedList(builder1, builder2, builder3));

            builder1.DidNotReceive().BuildMapper();
            builder2.DidNotReceive().BuildMapper();
            builder3.Received().BuildMapper();
        }
        public void TestCreateOperationManager()
        {
            INodeDataMapper mapper1 = Substitute.For <INodeDataMapper>();
            INodeDataMapper mapper2 = Substitute.For <INodeDataMapper>();
            INodeDataMapper mapper3 = Substitute.For <INodeDataMapper>();

            builder.When(x => x.CreateMapperWithParsePriority()).DoNotCallBase();
            builder.When(x => x.CreateLoadSaveMapper()).DoNotCallBase();
            builder.When(x => x.CreateSerializeMapper()).DoNotCallBase();

            builder.CreateMapperWithParsePriority().Returns(mapper1);
            builder.CreateLoadSaveMapper().Returns(mapper2);
            builder.CreateSerializeMapper().Returns(mapper3);

            OperationManager operationManager = (OperationManager)builder.CreateOperationManager();

            Assert.NotNull(operationManager);

            Assert.Same(mapper1, operationManager.parseMapper);
            Assert.Same(mapper2, operationManager.loadSaveMapper);
            Assert.Same(mapper3, operationManager.serializeMapper);
        }
Example #7
0
 public OperationManager(INodeDataMapper parseMapper, INodeDataMapper loadSaveMapper, INodeDataMapper serializeMapper)
 {
     this.parseMapper     = parseMapper;
     this.loadSaveMapper  = loadSaveMapper;
     this.serializeMapper = serializeMapper;
 }