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(); }
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); }
public OperationManager(INodeDataMapper parseMapper, INodeDataMapper loadSaveMapper, INodeDataMapper serializeMapper) { this.parseMapper = parseMapper; this.loadSaveMapper = loadSaveMapper; this.serializeMapper = serializeMapper; }