public async Task Update_Progression(User user, Subject subject, Concept concept, Concept newConcept) { var context = TestSetup.SetupContext(); var progression = new Progression { UserId = user.Id, User = user, SubjectId = subject.Id, Subject = subject, ConceptId = concept.Id, Concept = concept }; var expected = new Progression { UserId = user.Id, User = user, SubjectId = subject.Id, Subject = subject, ConceptId = newConcept.Id, Concept = newConcept }; await context.Users.AddAsync(user); await context.Subjects.AddAsync(subject); await context.Concepts.AddRangeAsync(concept, newConcept); await context.Progressions.AddAsync(progression); await context.SaveChangesAsync(); var service = new ProgressionService(context); var result = await service.Update(user, subject, newConcept); var storedResult = context.Progressions.FirstOrDefault(); result.Should().BeTrue(); storedResult.Should().NotBeNull().And.BeEquivalentTo(expected, TestSetup.IgnoreTimestamps <Progression>()); }