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); }
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); }
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); }
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); }