public void RemoveStudent_GivenInvalidId_ShouldNotSaveAndRemoveNone() { //Arrange var data = new List <Student> { new Student { StudentID = 1, FirstMidName = "Peggy", LastName = "Justice", EnrollmentDate = DateTime.Parse("2001-09-01") }, new Student { StudentID = 2, FirstMidName = "Meredith", LastName = "Alonso", EnrollmentDate = DateTime.Parse("2002-09-01") }, }; var testId = 0; var testStudent = data.SingleOrDefault(s => s.StudentID == testId); var mockSet = GetQueryableMockDbSet(data.ToArray()); mockSet.Setup(x => x.Remove(testStudent)).Callback(() => data.Remove(testStudent)); var mockContext = new Mock <IDbContext>(); mockContext.Setup(con => con.Students).Returns(mockSet.Object); mockContext.Setup(con => con.SaveChanges()).Returns(0); var classUnderTest = new MockEFService(mockContext.Object); //Act var result = classUnderTest.RemoveStudent(data.First().StudentID); //Assert result.ShouldBe(0); data.Count.ShouldBe(2); mockContext.Verify(x => x.SaveChanges(), Times.Once); }