public void Map_MockedInternalMappers_Redirects() { var mapperMocks = A.CollectionOfFake <BaseMapper <TestClassB, TestClassD> >(5).ToArray(); var results = new List <IEnumerable <MemberMappingInfo <TestClassB, TestClassD> > >(); for (int i = 0; i < mapperMocks.Length; ++i) { var res = new MemberMappingInfo <TestClassB, TestClassD>[] { A.Fake <MemberMappingInfo <TestClassB, TestClassD> >( o => o.WithArgumentsForConstructor( new object[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() })) }; results.Add(res); A.CallTo(() => mapperMocks[i].GetMappings()) .Returns(res); } var target = new CompositeMapper <TestClassB, TestClassD>(mapperMocks); var source = new TestClassB(); var result = new TestClassD(); target.Map(source, result); foreach (var m in results.SelectMany(e => e)) { A.CallTo(() => m.Map(source, result)).MustHaveHappened(); } }
/// <summary> /// Adds the specified mapping info to the internal mappings table. /// </summary> /// <param name="mappingInfo">The mapping info targetProperty be added.</param> protected void AddMappingInfo(MemberMappingInfo <TSource, TTarget> mappingInfo) { if (this.CurrentStatus == MapperStatus.Active) { throw new InvalidOperationException("Cannot add mappings to an already active mapper"); } else if (this.CurrentStatus == MapperStatus.New) { this.CurrentStatus = MapperStatus.Initialized; } this.TypeMapping.Add(mappingInfo); }
public void AddMapping_MockedInternalMappers_Redirects() { var mapperMocks = A.CollectionOfFake <BaseMapper <TestClassB, TestClassD> >(5).ToArray(); var extMock = A.Fake <BaseMapper <TestClassB, TestClassD> >( o => o.Implements(typeof(IExtensibleMapper <TestClassB, TestClassD>))); var results = new List <IEnumerable <MemberMappingInfo <TestClassB, TestClassD> > >(); var rnd = NUnit.Framework.Randomizer.GetRandomizer(typeof(CompositeMapper <,>).GetMethod("AddMapping")); var extPos = rnd.Next(mapperMocks.Length); for (int i = 0; i < mapperMocks.Length; ++i) { var res = new MemberMappingInfo <TestClassB, TestClassD>[] { A.Fake <MemberMappingInfo <TestClassB, TestClassD> >( o => o.WithArgumentsForConstructor( new object[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() })) }; if (i == extPos) { mapperMocks[i] = extMock; } results.Add(res); A.CallTo(() => mapperMocks[i].GetMappings()) .Returns(res); } var target = new CompositeMapper <TestClassB, TestClassD>(mapperMocks); var source = new TestClassB(); var result = new TestClassD(); MappingAction <TestClassB, TestClassD> action = (s, t) => t.SomeOtherName = s.Name; target.AddMappingAction("foo", "bar", action); target.ExtensibleMapper.ShouldBeSameAs(extMock); A.CallTo(() => ((IExtensibleMapper <TestClassB, TestClassD>)extMock).AddMappingAction("foo", "bar", action)) .MustHaveHappened(); }
public void AddMapping_MockedInternalMappers_Redirects() { var mapperMocks = A.CollectionOfFake<BaseMapper<TestClassB, TestClassD>>(5).ToArray(); var extMock = A.Fake<BaseMapper<TestClassB, TestClassD>>( o => o.Implements(typeof(IExtensibleMapper<TestClassB, TestClassD>))); var results = new List<IEnumerable<MemberMappingInfo<TestClassB, TestClassD>>>(); var rnd = NUnit.Framework.Randomizer.GetRandomizer(typeof(CompositeMapper<,>).GetMethod("AddMapping")); var extPos = rnd.Next(mapperMocks.Length); for (int i = 0; i < mapperMocks.Length; ++i) { var res = new MemberMappingInfo<TestClassB, TestClassD>[] { A.Fake<MemberMappingInfo<TestClassB, TestClassD>>( o => o.WithArgumentsForConstructor( new object[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() })) }; if (i == extPos) { mapperMocks[i] = extMock; } results.Add(res); A.CallTo(() => mapperMocks[i].GetMappings()) .Returns(res); } var target = new CompositeMapper<TestClassB, TestClassD>(mapperMocks); var source = new TestClassB(); var result = new TestClassD(); MappingAction<TestClassB, TestClassD> action = (s, t) => t.SomeOtherName = s.Name; target.AddMappingAction("foo", "bar", action); target.ExtensibleMapper.ShouldBeSameAs(extMock); A.CallTo(() => ((IExtensibleMapper<TestClassB, TestClassD>)extMock).AddMappingAction("foo", "bar", action)) .MustHaveHappened(); }
public void Map_MockedInternalMappers_Redirects() { var mapperMocks = A.CollectionOfFake<BaseMapper<TestClassB, TestClassD>>(5).ToArray(); var results = new List<IEnumerable<MemberMappingInfo<TestClassB, TestClassD>>>(); for (int i = 0; i < mapperMocks.Length; ++i) { var res = new MemberMappingInfo<TestClassB, TestClassD>[] { A.Fake<MemberMappingInfo<TestClassB, TestClassD>>( o => o.WithArgumentsForConstructor( new object[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() })) }; results.Add(res); A.CallTo(() => mapperMocks[i].GetMappings()) .Returns(res); } var target = new CompositeMapper<TestClassB, TestClassD>(mapperMocks); var source = new TestClassB(); var result = new TestClassD(); target.Map(source, result); foreach (var m in results.SelectMany(e => e)) { A.CallTo(() => m.Map(source, result)).MustHaveHappened(); } }