public void ShouldMapACustomInterfaceTypePairToAFixedDerivedTargetTypeMemberConditionally()
        {
            using (var mapper = Mapper.CreateNew())
            {
                mapper.WhenMapping
                .From <Issue163.ISource>()
                .To <PublicField <Issue163.ITarget> >()
                .Map(ctx => ctx.Source).To(dst => dst.Value);

                mapper.WhenMapping
                .From <Issue163.ISource>()
                .To <Issue163.ITarget>()
                .Map(s => s.Status, t => t.StatusId)
                .And
                .If(ctx => ctx.Source.Status == 404)
                .MapTo <Issue163.Target>();

                Issue163.ISource source404 = new Issue163.Source {
                    Status = 404
                };

                var result404 = mapper.Map(source404).ToANew <PublicField <Issue163.ITarget> >();

                result404
                .ShouldNotBeNull()
                .Value
                .ShouldNotBeNull()
                .ShouldBeOfType <Issue163.Target>()
                .StatusId.ShouldBe(404);

                Issue163.ISource source503 = new Issue163.Source {
                    Status = 503
                };

                var result503 = mapper.Map(source503).ToANew <PublicField <Issue163.ITarget> >();

                result503
                .ShouldNotBeNull()
                .Value
                .ShouldBeNull();
            }
        }
        public void ShouldMapACustomInterfaceTypePairToAFixedDerivedTargetType()
        {
            using (var mapper = Mapper.CreateNew())
            {
                mapper.WhenMapping
                .From <Issue163.ISource>()
                .To <Issue163.ITarget>()
                .MapTo <Issue163.Target>()
                .And
                .Map(s => s.Status, t => t.StatusId);

                Issue163.ISource source = new Issue163.Source {
                    Status = 200
                };

                var result = mapper.Map(source).ToANew <Issue163.ITarget>();

                result
                .ShouldNotBeNull()
                .ShouldBeOfType <Issue163.Target>()
                .StatusId.ShouldBe(200);
            }
        }