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(); } }
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(); } }