示例#1
0
        public void AddStudent_GivenValidStudent_ShouldSaveAndAddOneStudent()
        {
            //Arrange
            var testStudent = new Student {
                FirstMidName = "Carson", LastName = "Alexander", EnrollmentDate = DateTime.Parse("2005-09-01")
            };

            var data = new List <Student>
            {
                new Student {
                    FirstMidName = "Peggy", LastName = "Justice", EnrollmentDate = DateTime.Parse("2001-09-01")
                },
                new Student {
                    FirstMidName = "Meredith", LastName = "Alonso", EnrollmentDate = DateTime.Parse("2002-09-01")
                },
            };

            var mockSet = GetQueryableMockDbSet(data.ToArray());

            mockSet.Setup(x => x.Include(It.IsAny <string>())).Returns(mockSet.Object);
            mockSet.Setup(x => x.Add(testStudent)).Callback(() => data.Add(testStudent));
            var mockContext = new Mock <IDbContext>();

            mockContext.Setup(con => con.Students).Returns(mockSet.Object);
            mockContext.Setup(con => con.SaveChanges()).Returns(1);

            var classUnderTest = new MockEFService(mockContext.Object);

            //Action
            var result = classUnderTest.AddStudent(testStudent);

            //Assert
            result.ShouldBe(1);
            data.Count.ShouldBe(3);
            data.Any(x => x.LastName == testStudent.LastName).ShouldBe(true);
            mockContext.Verify(x => x.SaveChanges(), Times.Once);
        }