Beispiel #1
0
        public async Task CorrectlyCascadeDeleteExerciseHistoriesForDeletingWorkoutHistoryHistory()
        {
            var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(_listWorkoutHistories);

            try
            {
                using (var context = new FittifyContext(options))
                {
                    var repo = new WorkoutHistoryRepository(context);
                    var entityToBeDeleted = context.WorkoutHistories.FirstOrDefault(f => f.Id == 1);
                    var exerciseHistoriesToBeCascadeDeleted = context
                                                              .ExerciseHistories
                                                              .Where(w => w.WorkoutHistoryId == entityToBeDeleted.Id)
                                                              .ToList();
                    var exerciseHistoryIds = exerciseHistoriesToBeCascadeDeleted.Select(s => s.Id).ToList();


                    Assert.AreNotEqual(entityToBeDeleted, null);
                    Assert.AreEqual(exerciseHistoriesToBeCascadeDeleted.Count, 3);

                    var deletionResult = await repo.Delete(entityToBeDeleted.Id);

                    if (deletionResult != null)
                    {
                        exerciseHistoriesToBeCascadeDeleted = context
                                                              .ExerciseHistories
                                                              .Where(e => exerciseHistoryIds.Contains(e.Id))
                                                              .ToList();
                        entityToBeDeleted = context.WorkoutHistories.FirstOrDefault(f => f.Id == 1);

                        Assert.AreEqual(entityToBeDeleted, null);
                        Assert.AreEqual(exerciseHistoriesToBeCascadeDeleted.Count, 0);
                    }
                    else
                    {
                        Assert.Fail();
                    }
                }
            }
            finally
            {
                connection.Close();
            }
        }
Beispiel #2
0
        public async Task NotDeleteWhenWorkoutHistoryDoesNotExist()
        {
            var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(_listWorkoutHistories);

            try
            {
                using (var context = new FittifyContext(options))
                {
                    var repo           = new WorkoutHistoryRepository(context);
                    var deletionResult = await repo.Delete(0);

                    Assert.AreEqual(deletionResult.DidEntityExist, false);
                    Assert.AreEqual(deletionResult.IsDeleted, false);
                }
            }
            finally
            {
                connection.Close();
            }
        }