public async void DeleteModuleContent_CalledWithInvalidId_RetrunsNotFoundWithId() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var context = Substitute.For <HttpContext>(); long notValidId = 1; ModuleContent nullModuleContent = null; List <Video> nullVideos = null; cookieManager.GetRoleFromToken(Arg.Any <string>()).Returns(Role.Admin.ToString()); unitOfWork.ModuleContents.GetById(notValidId).Returns(nullModuleContent); unitOfWork.Videos.GetVideosByModuleContentId(notValidId).Returns(nullVideos); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); moduleContentsController.ControllerContext = new ControllerContext() { HttpContext = context }; var result = await moduleContentsController.DeleteModuleContent(notValidId); var notFoundObjectResult = Assert.IsType <NotFoundObjectResult>(result); var returnValue = Assert.IsType <long>(notFoundObjectResult.Value); Assert.Equal(notValidId, returnValue); }
public async void DeleteModuleContent_CalledAndUserRoleIsNotAdmin_ReturnsBadRequestWithError() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var context = Substitute.For <HttpContext>(); long testId = 1; string error = "Only Admins can delete module contents."; cookieManager.GetRoleFromToken(Arg.Any <string>()).Returns(Role.Student.ToString()); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); moduleContentsController.ControllerContext = new ControllerContext() { HttpContext = context }; var result = await moduleContentsController.DeleteModuleContent(testId); var badRequestObjectResult = Assert.IsType <BadRequestObjectResult>(result); var returnValue = Assert.IsType <string>(badRequestObjectResult.Value); Assert.Equal(error, returnValue); }
public async void DeleteModuleContent_CalledWithValidId_ReturnsOk() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var context = Substitute.For <HttpContext>(); long testId = 1; var testModuleContent = new ModuleContent(); var testVideos = new List <Video>() { new Video(), new Video(), new Video(), new Video() }; cookieManager.GetRoleFromToken(Arg.Any <string>()).Returns(Role.Admin.ToString()); unitOfWork.ModuleContents.GetById(testId).Returns(testModuleContent); unitOfWork.Videos.GetVideosByModuleContentId(testId).Returns(testVideos); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); moduleContentsController.ControllerContext = new ControllerContext() { HttpContext = context }; var result = await moduleContentsController.DeleteModuleContent(testId); var okResult = Assert.IsType <OkResult>(result); Assert.Equal(200, okResult.StatusCode); }