コード例 #1
0
        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();
            }
        }
コード例 #2
0
ファイル: BaseMapper.Generic.cs プロジェクト: dcollioni/MOO
        /// <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);
        }
コード例 #3
0
        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();
        }
コード例 #4
0
ファイル: CompositeMapperTest.cs プロジェクト: LuanNunes/MOO
        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();
        }
コード例 #5
0
ファイル: CompositeMapperTest.cs プロジェクト: LuanNunes/MOO
        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();
            }
        }