Exemplo n.º 1
0
        public void TestCreateList()
        {
            NodeDataListBuilder builder = Substitute.ForPartsOf <NodeDataListBuilder>(typeof(NodeDataClass));

            BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;

            FieldInfo    iField    = typeof(NodeDataClass).GetField("i", flags);
            FieldInfo    jField    = typeof(NodeDataClass).GetField("j", flags);
            FieldInfo    kField    = typeof(NodeDataClass).GetField("k", flags);
            PropertyInfo xProperty = typeof(NodeDataClass).GetProperty("X", flags);
            PropertyInfo yProperty = typeof(NodeDataClass).GetProperty("Y", flags);
            PropertyInfo zProperty = typeof(NodeDataClass).GetProperty("Z", flags);

            Assert.NotNull(iField);
            Assert.NotNull(jField);
            Assert.NotNull(kField);
            Assert.NotNull(xProperty);
            Assert.NotNull(yProperty);
            Assert.NotNull(zProperty);

            INodeDataBuilder builder1 = Substitute.For <INodeDataBuilder>();
            INodeDataBuilder builder2 = Substitute.For <INodeDataBuilder>();
            INodeDataBuilder builder3 = Substitute.For <INodeDataBuilder>();
            INodeDataBuilder builder4 = Substitute.For <INodeDataBuilder>();

            builder.WhenForAnyArgs(x => x.CreateFieldBuilder(null, null, null)).DoNotCallBase();

            builder.CreateFieldBuilder(Arg.Any <NodeData>(), Arg.Is <FieldWrapper>(x => x.MemberInfo == iField), DefaultValueParseMap.Instance).Returns(builder1);
            builder.CreateFieldBuilder(Arg.Any <NodeData>(), Arg.Is <FieldWrapper>(x => x.MemberInfo == jField), DefaultValueParseMap.Instance).Returns(builder2);
            builder.CreateFieldBuilder(Arg.Any <NodeData>(), Arg.Is <PropertyWrapper>(x => x.MemberInfo == xProperty), DefaultValueParseMap.Instance).Returns(builder3);
            builder.CreateFieldBuilder(Arg.Any <NodeData>(), Arg.Is <PropertyWrapper>(x => x.MemberInfo == yProperty), DefaultValueParseMap.Instance).Returns(builder4);

            INodeDataField field1 = Substitute.For <INodeDataField>();
            INodeDataField field2 = Substitute.For <INodeDataField>();
            INodeDataField field3 = Substitute.For <INodeDataField>();
            INodeDataField field4 = Substitute.For <INodeDataField>();

            builder1.CreateNodeDataField().Returns(field1);
            builder2.CreateNodeDataField().Returns(field2);
            builder3.CreateNodeDataField().Returns(field3);
            builder4.CreateNodeDataField().Returns(field4);

            Assert.IsType <NodeDataList>(builder.CreateList());

            builder.Received().CreateFieldBuilder(Arg.Any <NodeData>(), Arg.Is <FieldWrapper>(x => x.MemberInfo == iField), DefaultValueParseMap.Instance);
            builder.Received().CreateFieldBuilder(Arg.Any <NodeData>(), Arg.Is <FieldWrapper>(x => x.MemberInfo == jField), DefaultValueParseMap.Instance);
            builder.DidNotReceive().CreateFieldBuilder(Arg.Any <NodeData>(), Arg.Is <FieldWrapper>(x => x.MemberInfo == kField), Arg.Any <IValueParseMap>());
            builder.Received().CreateFieldBuilder(Arg.Any <NodeData>(), Arg.Is <PropertyWrapper>(x => x.MemberInfo == xProperty), DefaultValueParseMap.Instance);
            builder.Received().CreateFieldBuilder(Arg.Any <NodeData>(), Arg.Is <PropertyWrapper>(x => x.MemberInfo == yProperty), DefaultValueParseMap.Instance);
            builder.DidNotReceive().CreateFieldBuilder(Arg.Any <NodeData>(), Arg.Is <PropertyWrapper>(x => x.MemberInfo == zProperty), Arg.Any <IValueParseMap>());

            builder1.Received().CreateNodeDataField();
            builder2.Received().CreateNodeDataField();
            builder3.Received().CreateNodeDataField();
            builder4.Received().CreateNodeDataField();
        }
Exemplo n.º 2
0
        public void TestCreateFieldBuilder()
        {
            NodeDataListBuilder builder = new NodeDataListBuilder(Substitute.For <Type>());

            NodeData nodeData = new NodeData {
                name = "fieldbro"
            };
            IFieldWrapper  fieldWrapper = Substitute.For <IFieldWrapper>();
            IValueParseMap parseMap     = Substitute.For <IValueParseMap>();

            NodeDataBuilder fieldBuilder = Assert.IsType <NodeDataBuilder>(builder.CreateFieldBuilder(nodeData, fieldWrapper, parseMap));

            Assert.Same(nodeData, fieldBuilder.nodeData);
            Assert.Same(fieldWrapper, fieldBuilder.fieldWrapper);
            Assert.Same(parseMap, fieldBuilder.valueParseMap);
        }