public void ShouldAllowACustomTargetEntryKey()
        {
            using (var mapper = Mapper.CreateNew())
            {
                mapper.WhenMapping
                .From <MysteryCustomerViewModel>()
                .ToDynamics
                .MapMember(mcvm => mcvm.Name)
                .ToFullMemberName("CustomerName")
                .And
                .If((mcvm, d) => mcvm.Discount > 0.5)
                .Map((mcvm, d) => mcvm.Name + " (Big discount!)")
                .To(d => d["Name"]);

                var noDiscountSource = new MysteryCustomerViewModel {
                    Name = "Schumer", Discount = 0.0
                };
                var noDiscountResult = (IDictionary <string, object>)mapper.Map(noDiscountSource).ToANew <dynamic>();

                noDiscountResult["CustomerName"].ShouldBe("Schumer");
                noDiscountResult.ShouldNotContainKey("Name");

                var bigDiscountSource = new MysteryCustomerViewModel {
                    Name = "Silverman", Discount = 0.6
                };
                var bigDiscountResult = (IDictionary <string, object>)mapper.Map(bigDiscountSource).ToANew <dynamic>();

                bigDiscountResult["CustomerName"].ShouldBe("Silverman");
                bigDiscountResult["Name"].ShouldBe("Silverman (Big discount!)");
            }
        }
        public void ShouldApplyAConfiguredConditionalTargetEntryValue()
        {
            using (var mapper = Mapper.CreateNew())
            {
                mapper.WhenMapping
                .From <MysteryCustomerViewModel>()
                .ToDynamics
                .If((mcvm, d) => mcvm.Discount > 0.5)
                .Map((mcvm, d) => mcvm.Name + " (Big discount!)")
                .To(d => d["Name"]);

                var noDiscountSource = new MysteryCustomerViewModel {
                    Name = "Schumer", Discount = 0.0
                };
                var noDiscountResult = (IDictionary <string, object>)mapper.Map(noDiscountSource).ToANew <dynamic>();

                noDiscountResult["Name"].ShouldBe("Schumer");

                var bigDiscountSource = new MysteryCustomerViewModel {
                    Name = "Silverman", Discount = 0.6
                };
                var bigDiscountResult = (IDictionary <string, object>)mapper.Map(bigDiscountSource).ToANew <dynamic>();

                bigDiscountResult["Name"].ShouldBe("Silverman (Big discount!)");
            }
        }