コード例 #1
0
        public Task ShouldProjectUsingDateDiff()
        {
            return(RunTest(async context =>
            {
                var dateTime1 = new PublicDateTime {
                    Value = DateTime.Today.AddMonths(-1)
                };
                var dateTime2 = new PublicDateTime {
                    Value = DateTime.Today
                };
                var dateTime3 = new PublicDateTime {
                    Value = DateTime.Today.AddMonths(+1)
                };

                await context.DateTimeItems.AddRangeAsync(dateTime1, dateTime2, dateTime3);
                await context.SaveChangesAsync();

                var dateTimeDtos = await context
                                   .DateTimeItems
                                   .Where(d => (d.Value - DateTime.Today).TotalDays > 15)
                                   .Project().To <PublicDateTimeDto>()
                                   .OrderBy(pvm => pvm.Id)
                                   .ToListAsync();

                var dateTimeDto = dateTimeDtos.ShouldHaveSingleItem();

                dateTimeDto.Id.ShouldBe(dateTime3.Id);
                dateTimeDto.Value.ShouldBe(dateTime3.Value);
            }));
        }
コード例 #2
0
        protected Task DoShouldFormatDateTimes(Func <DateTime, string> expectedDateStringFactory = null)
        {
            if (expectedDateStringFactory == null)
            {
                expectedDateStringFactory = d => d.ToString("o");
            }

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

                var source = new PublicDateTime {
                    Value = DateTime.Now
                };
                var result = mapper.Map(source).ToANew <PublicStringDto>();

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

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

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

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