コード例 #1
0
        public void GetAll_WhenASingleStudentInRepository_ShouldReturnSingleStudent()
        {
            var repository = Mock.Create<IRepository<Student>>();
            var studentToAdd = new Student()
            {
                LastName = "Test student"
            };

            IQueryable<Student> studentEntities = (new List<Student>() { studentToAdd }).AsQueryable();
            Mock.Arrange(() => repository.GetAll()).Returns (() => studentEntities.AsQueryable());

            var controller = new StudentsController(repository);
            SetupController(controller);

            var response = controller.GetAll();
            List<StudentModel> students = new List<StudentModel>();
            bool gotValue = response.TryGetContentValue(out students);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.IsTrue(gotValue);
            Assert.IsTrue(students.Count == 1);
        }
コード例 #2
0
        public void Post_WhenValid_ShouldReturnAppropriateElement()
        {
            var repository = Mock.Create<IRepository<Student>>();
            var firstStudentToAdd = new Student()
            {
                // Deliberate setting so that the appropriate id can be returned in the 
                // controller.
                Id = 32,
                LastName = "First test student"
            };


            Mock.Arrange(() => repository.Post(Arg.IsAny<Student>())).Returns(() => firstStudentToAdd);

            var controller = new StudentsController(repository);
            SetupController(controller);

            var response = controller.PostStudent(new StudentModel()
            {
                LastName = "John",
                Age = 11,
                Grade = 5
            });

            Student student = new Student();
            bool gotValue = response.TryGetContentValue(out student);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.IsTrue(gotValue);
            Assert.AreEqual(32, student.Id);
        }
コード例 #3
0
        public void Post_WhenGradeIsNegative_ShouldReturnError()
        {
            var repository = Mock.Create<IRepository<Student>>();

            var controller = new StudentsController(repository);
            SetupController(controller);

            var response = controller.PostStudent(new StudentModel()
            {
                LastName = "John",
                Age = 3,
                Grade = -5
            });

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
コード例 #4
0
        public void GetById_WhenIdIsLessThanZero_ShouldReturnError()
        {
            var repository = Mock.Create<IRepository<Student>>();

            var controller = new StudentsController(repository);
            SetupController(controller);
            
            var response = controller.GetById(-2);
            
            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
        }