示例#1
0
        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);
        }