public async Task CorrectlyCascadeDeleteExerciseHistoryHistories_WhenNoPreviousAndNextEntityExist() { var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(); try { using (var context = new FittifyContext(options)) { var repo = new ExerciseHistoryRepository(context); var entityToBeDeleted = context.ExerciseHistories.FirstOrDefault(f => f.Id == 1); var weightLiftingSetsToBeCascadeDeleted = context.WeightLiftingSets.Where(w => w.ExerciseHistoryId == entityToBeDeleted.Id).ToList(); var cardioSetsToBeCascadeDeleted = context.WeightLiftingSets.Where(w => w.ExerciseHistoryId == entityToBeDeleted.Id).ToList(); var exerciseHistoryToBeChanged = context .ExerciseHistories .Include(i => i.PreviousExerciseHistory) .FirstOrDefault(w => w.PreviousExerciseHistory == entityToBeDeleted); Assert.AreNotEqual(entityToBeDeleted, null); Assert.AreNotEqual(exerciseHistoryToBeChanged, null); Assert.AreEqual(weightLiftingSetsToBeCascadeDeleted.Count(), 2); Assert.AreEqual(cardioSetsToBeCascadeDeleted.Count(), 2); var deletionResult = await repo.Delete(entityToBeDeleted.Id); if (deletionResult != null) { weightLiftingSetsToBeCascadeDeleted = context.WeightLiftingSets.Where(w => w.ExerciseHistoryId == entityToBeDeleted.Id).ToList(); cardioSetsToBeCascadeDeleted = context.WeightLiftingSets.Where(w => w.ExerciseHistoryId == entityToBeDeleted.Id).ToList(); exerciseHistoryToBeChanged = context .ExerciseHistories .FirstOrDefault(f => f.PreviousExerciseHistory == null); entityToBeDeleted = context.ExerciseHistories.FirstOrDefault(f => f.Id == 1); Assert.AreEqual(entityToBeDeleted, null); Assert.AreEqual(weightLiftingSetsToBeCascadeDeleted.Count, 0); Assert.AreEqual(cardioSetsToBeCascadeDeleted.Count, 0); Assert.AreNotEqual(exerciseHistoryToBeChanged, null); Assert.AreEqual(exerciseHistoryToBeChanged.PreviousExerciseHistory, null); } else { Assert.Fail(); } } } finally { connection.Close(); } }
public async Task ReturnCorrectlyQueriedCollection() { var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(); try { using (var context = new FittifyContext(options)) { var entitiesFromContext = await context .ExerciseHistories .Include(i => i.Exercise) .Where(w => w.OwnerGuid == _ownerGuid) .Where(w => w.ExerciseId == context.Exercises.FirstOrDefault(f => f.OwnerGuid != null).Id) .Where(w => w.WorkoutHistoryId == context.WorkoutHistories.FirstOrDefault(f => f.OwnerGuid != null).Id) .ToListAsync(); var serializedEntitesFromContext = JsonConvert.SerializeObject(entitiesFromContext, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); var resourceParameters = new ExerciseHistoryResourceParameters() { OwnerGuid = _ownerGuid, ExerciseId = context.Exercises.FirstOrDefault(f => f.OwnerGuid != null).Id, WorkoutHistoryId = context.WorkoutHistories.FirstOrDefault(f => f.OwnerGuid != null).Id }; var repo = new ExerciseHistoryRepository(context); var collection = await repo.GetPagedCollection(resourceParameters); var serializedEntitiesFromRepo = JsonConvert.SerializeObject(collection, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); Assert.AreEqual(serializedEntitesFromContext, serializedEntitiesFromRepo); } } finally { connection.Close(); } }
public async Task CodeCoverage100() { var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(); try { using (var context = new FittifyContext(options)) { var sut = new ExerciseHistoryRepository(context); sut.FixRelationOfNextExerciseHistory(id: 0); sut.FixRelationOfNextExerciseHistory(entity: null); } } finally { connection.Close(); } }
public async Task FailDeleteForNonExistingEntity() { var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(); try { using (var context = new FittifyContext(options)) { var sut = new ExerciseHistoryRepository(context); var deletionResult = await sut.Delete(0); Assert.AreEqual(deletionResult.DidEntityExist, false); Assert.AreEqual(deletionResult.IsDeleted, false); } } finally { connection.Close(); } }
public async Task ReturnCorrectQueryByIdResult() { var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(); try { using (var context = new FittifyContext(options)) { var entityFromContext = await context .ExerciseHistories .Include(i => i.Exercise) .Include(i => i.WorkoutHistory) .Include(i => i.WeightLiftingSets) .Include(i => i.CardioSets) .FirstOrDefaultAsync(f => f.Id == 1); var serializedEntityFromContext = JsonConvert.SerializeObject(entityFromContext, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); var repo = new ExerciseHistoryRepository(context); var entityFromRepo = await repo.GetById(1); var serializedEntityFromRepo = JsonConvert.SerializeObject(entityFromRepo, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); Assert.AreEqual(serializedEntityFromContext, serializedEntityFromRepo); } } finally { connection.Close(); } }
public async Task CorrectlyCascadeDeleteExerciseHistoryHistories_WhenPreviousAndNextEntityExist() { var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(); try { using (var context = new FittifyContext(options)) { var repo = new ExerciseHistoryRepository(context); var entityToBeDeleted = context.ExerciseHistories.FirstOrDefault(f => f.Id == 2); var weightLiftingSetsToBeCascadeDeleted = context.WeightLiftingSets.Where(w => w.ExerciseHistoryId == entityToBeDeleted.Id).ToList(); var cardioSetsToBeCascadeDeleted = context.WeightLiftingSets.Where(w => w.ExerciseHistoryId == entityToBeDeleted.Id).ToList(); var exerciseHistoryToBeChanged = context .ExerciseHistories .Include(i => i.PreviousExerciseHistory) .FirstOrDefault(w => w.PreviousExerciseHistory == entityToBeDeleted); var newPreviousExerciseHistory = context.ExerciseHistories.FirstOrDefault(f => f.Id == 1); var formerPreviousExerciseHistory = JsonConvert.SerializeObject(exerciseHistoryToBeChanged.PreviousExerciseHistory, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); Assert.AreNotEqual(entityToBeDeleted, null); Assert.AreNotEqual(exerciseHistoryToBeChanged, null); Assert.AreEqual(weightLiftingSetsToBeCascadeDeleted.Count(), 2); Assert.AreEqual(cardioSetsToBeCascadeDeleted.Count(), 2); var deletionResult = await repo.Delete(entityToBeDeleted.Id); if (deletionResult != null && deletionResult.DidEntityExist == true && deletionResult.IsDeleted) { weightLiftingSetsToBeCascadeDeleted = context.WeightLiftingSets.Where(w => w.ExerciseHistoryId == entityToBeDeleted.Id).ToList(); cardioSetsToBeCascadeDeleted = context.WeightLiftingSets.Where(w => w.ExerciseHistoryId == entityToBeDeleted.Id).ToList(); exerciseHistoryToBeChanged = context .ExerciseHistories .FirstOrDefault(f => f.PreviousExerciseHistory == newPreviousExerciseHistory); entityToBeDeleted = context.ExerciseHistories.FirstOrDefault(f => f.Id == 2); var latterPreviousExerciseHistory = JsonConvert.SerializeObject(exerciseHistoryToBeChanged.PreviousExerciseHistory, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); Assert.AreEqual(entityToBeDeleted, null); Assert.AreEqual(weightLiftingSetsToBeCascadeDeleted.Count, 0); Assert.AreEqual(cardioSetsToBeCascadeDeleted.Count, 0); Assert.AreNotEqual(exerciseHistoryToBeChanged, null); Assert.AreNotEqual(formerPreviousExerciseHistory, latterPreviousExerciseHistory); } else { Assert.Fail(); } } } finally { connection.Close(); } }