public async Task ShouldReturnOkWithEmptyListIfModuleHasZeroStudents_GetStudentsByModule() { Module module = new Module() { Id = 3, Code = "SEM5640", Year = "2020", ClassCode = "AB0", CoordinatorUid = "nst", Title = "Developing Advanced Internet Based-Applications" }; List <Student> studentData = new List <Student>(); var mockRepo = new Mock <IDataRepository>(); mockRepo.Setup(repo => repo.GetModuleAsync(module.Id)). ReturnsAsync(module); mockRepo.Setup(repo => repo.StudentsByModuleAsync(module.Id)). ReturnsAsync(studentData); ModulesController controller = new ModulesController(mockRepo.Object); var result = await controller.GetStudentsByModule(module.Id); Assert.IsInstanceOfType(result.Result, typeof(OkObjectResult)); var okResult = result.Result as OkObjectResult; var students = okResult.Value as List <Student>; Assert.AreEqual(0, students.Count); }
public async Task ShouldReturnNotFoundIfModuleDoesntExist_GetStudentsByModule() { int id = 3; var mockRepo = new Mock <IDataRepository>(); mockRepo.Setup(repo => repo.GetModuleAsync(id)). ReturnsAsync((Module)null); ModulesController controller = new ModulesController(mockRepo.Object); var result = await controller.GetStudentsByModule(id); Assert.IsInstanceOfType(result.Result, typeof(NotFoundResult)); }
public async Task ShouldReturnStudentsOnAModuleWithStudents_GetStudentsByModule() { Module module = new Module() { Id = 3, Code = "SEM5640", Year = "2020", ClassCode = "AB0", CoordinatorUid = "nst", Title = "Developing Advanced Internet Based-Applications" }; List <Student> studentData = new List <Student>(); studentData.Add(new Student() { Uid = "mwj7", Forename = "Morgan", Surname = "Jones" }); studentData.Add(new Student() { Uid = "dop2", Forename = "Dominic", Surname = "Parr" }); var mockRepo = new Mock <IDataRepository>(); mockRepo.Setup(repo => repo.GetModuleAsync(module.Id)). ReturnsAsync(module); mockRepo.Setup(repo => repo.StudentsByModuleAsync(module.Id)). ReturnsAsync(studentData); ModulesController controller = new ModulesController(mockRepo.Object); var result = await controller.GetStudentsByModule(module.Id); Assert.IsInstanceOfType(result.Result, typeof(OkObjectResult)); var okResult = result.Result as OkObjectResult; var students = okResult.Value as List <Student>; Assert.AreEqual(2, students.Count); int i = 0; foreach (Student m in students) { Assert.AreEqual(studentData[i].Uid, m.Uid); Assert.AreEqual(studentData[i].Forename, m.Forename); Assert.AreEqual(studentData[i].Surname, m.Surname); i++; } }