示例#1
0
        public async Task ReturnCorrectlyQueriedCollection()
        {
            var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(_listWorkoutHistories);

            try
            {
                using (var context = new FittifyContext(options))
                {
                    var entitiesFromContext = await context
                                              .WorkoutHistories
                                              .Include(i => i.Workout)
                                              .Where(w => w.OwnerGuid == _ownerGuid &&
                                                     w.DateTimeStart >= new DateTime(1989, 11, 01, 13, 00, 00) &&
                                                     w.DateTimeEnd <= new DateTime(1989, 11, 01, 17, 00, 00) &&
                                                     w.WorkoutId == 1)
                                              .ToListAsync();

                    var serializedEntitesFromContext = JsonConvert.SerializeObject(entitiesFromContext,
                                                                                   new JsonSerializerSettings()
                    {
                        ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                    });

                    var resourceParameters =
                        new WorkoutHistoryResourceParameters()
                    {
                        OwnerGuid         = _ownerGuid,
                        FromDateTimeStart = new DateTime(1989, 11, 01, 13, 00, 00),
                        UntilDateTimeEnd  = new DateTime(1989, 11, 01, 17, 00, 00),
                        WorkoutId         = 1
                    };
                    var repo       = new WorkoutHistoryRepository(context);
                    var collection = await repo.GetPagedCollection(resourceParameters);

                    var serializedEntitiesFromRepo = JsonConvert.SerializeObject(collection,
                                                                                 new JsonSerializerSettings()
                    {
                        ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                    });
                    Assert.AreEqual(serializedEntitesFromContext, serializedEntitiesFromRepo);
                }
            }
            finally
            {
                connection.Close();
            }
        }