Beispiel #1
0
        public Task ShouldFormatDecimalsInline()
        {
            return(RunTest(async(context, mapper) =>
            {
                var source = new PublicDecimal {
                    Value = 123.00m
                };

                await context.DecimalItems.AddAsync(source);
                await context.SaveChangesAsync();

                var stringDto = await context
                                .DecimalItems
                                .ProjectUsing(mapper)
                                .To <PublicStringDto>(cfg => cfg
                                                      .WhenMapping
                                                      .StringsFrom <decimal>(c => c.FormatUsing("C"))
                                                      .AndWhenMapping
                                                      .From <PublicDecimal>()
                                                      .ProjectedTo <PublicStringDto>()
                                                      .Map(d => d.Value * 2)
                                                      .To(dto => dto.Value))
                                .SingleAsync();

                stringDto.Value.ShouldBe(246.00m.ToString("C"));
            }));
        }
Beispiel #2
0
        protected Task DoShouldFormatDecimals(Func <decimal, string> expectedDecimalStringFactory = null)
        {
            if (expectedDecimalStringFactory == null)
            {
                expectedDecimalStringFactory = d => d.ToString("C");
            }

            return(RunTest(async(context, mapper) =>
            {
                mapper.WhenMapping
                .StringsFrom <decimal>(c => c.FormatUsing("C"));

                var source = new PublicDecimal {
                    Value = 674378.52m
                };
                var result = mapper.Map(source).ToANew <PublicStringDto>();

                result.Value.ShouldBe(source.Value.ToString("C"));

                await context.DecimalItems.Add(source);
                await context.SaveChanges();

                var stringDto = context
                                .DecimalItems
                                .ProjectUsing(mapper)
                                .To <PublicStringDto>()
                                .ShouldHaveSingleItem();

                stringDto.Value.ShouldBe(expectedDecimalStringFactory.Invoke(source.Value));
            }));
        }