public async void UpdateModuleContent_CalledWithInvalidId_ReturnsNotFoundWithId() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var context = Substitute.For <HttpContext>(); long notValidId = 1; var testModuleContentView = new ModuleContentUpdateViewModel(); ModuleContent nullModuleContent = null; string error = "Module content cannot be null."; unitOfWork.ModuleContents.GetById(notValidId).Returns(nullModuleContent); cookieManager.GetRoleFromToken(Arg.Any <string>()).Returns(Role.Admin.ToString()); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); moduleContentsController.ControllerContext = new ControllerContext() { HttpContext = context }; var result = await moduleContentsController.UpdateModuleContent(testModuleContentView, notValidId); var notFoundObjectResult = Assert.IsType <NotFoundObjectResult>(result); var returnValue = Assert.IsType <long>(notFoundObjectResult.Value); Assert.Equal(notValidId, returnValue); }
public async void AddModuleContent_CalledWithValidModuleContent_ReturnsOk() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var context = Substitute.For <HttpContext>(); var testId = 1; var testModule = new Module(); var testModuleContent = new ModuleContentViewModel() { ModuleId = testId }; cookieManager.GetRoleFromToken(Arg.Any <string>()).Returns(Role.Admin.ToString()); unitOfWork.Modules.GetById(testId).Returns(testModule); unitOfWork.ModuleContents.GetLastModuleContentByModuleId(testModuleContent.ModuleId).Returns(1); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); moduleContentsController.ControllerContext = new ControllerContext() { HttpContext = context }; var result = await moduleContentsController.AddModuleContent(testModuleContent); var okResult = Assert.IsType <OkResult>(result); Assert.Equal(200, okResult.StatusCode); }
public async void UpdateModuleContent_CalledAndRoleIsNotAdmin_ReturnsBadRequestWithError() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var context = Substitute.For <HttpContext>(); long testId = 1; var testModuleContentView = new ModuleContentUpdateViewModel(); ModuleContent nullModuleContent = null; string error = "Only Admins can update module content."; unitOfWork.ModuleContents.GetById(testId).Returns(nullModuleContent); 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.UpdateModuleContent(testModuleContentView, testId); var badRequestObjectResult = Assert.IsType <BadRequestObjectResult>(result); var returnValue = Assert.IsType <string>(badRequestObjectResult.Value); Assert.Equal(error, returnValue); }
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_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); }
public async void AddModuleContent_CalledWithNull_ReturnsBadRequestWithError() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var context = Substitute.For <HttpContext>(); ModuleContentViewModel nullModuleContent = null; string error = "Module content cannot be null."; cookieManager.GetRoleFromToken(Arg.Any <string>()).Returns(Role.Admin.ToString()); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); moduleContentsController.ControllerContext = new ControllerContext() { HttpContext = context }; var result = await moduleContentsController.AddModuleContent(nullModuleContent); var badRequestObjectResult = Assert.IsType <BadRequestObjectResult>(result); var returnValue = Assert.IsType <string>(badRequestObjectResult.Value); Assert.Equal(error, returnValue); }
public async void GetModuleContentByModuleId_CalledWithValidId_ReturnsOkWithListOfModuleContent() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var testId = 1; var testModule = new Module { Id = testId }; var testModuleContents = new List <ModuleContent>() { new ModuleContent { Module = testModule }, new ModuleContent { Module = testModule }, new ModuleContent { Module = testModule }, new ModuleContent { Module = testModule } }; unitOfWork.ModuleContents.GetModuleContentsByModuleId(testId).Returns(testModuleContents); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); var result = await moduleContentsController.GetModuleContentByModuleId(testId); var okObjectResult = Assert.IsType <OkObjectResult>(result); var retrunValue = Assert.IsType <List <ModuleContent> >(okObjectResult.Value); Assert.Equal(testModuleContents.Count, retrunValue.Count); Assert.Equal(testId, retrunValue[0].Module.Id); }
public async void AddModuleContent_CalledWithInvalidValidModuleContent_ReturnsNotFoundWithModuleId() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var context = Substitute.For <HttpContext>(); var notValidId = 1; Module nullModule = null; var testModuleContent = new ModuleContentViewModel() { ModuleId = notValidId }; cookieManager.GetRoleFromToken(Arg.Any <string>()).Returns(Role.Admin.ToString()); unitOfWork.Modules.GetById(notValidId).Returns(nullModule); unitOfWork.ModuleContents.GetLastModuleContentByModuleId(testModuleContent.ModuleId).Returns(0); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); moduleContentsController.ControllerContext = new ControllerContext() { HttpContext = context }; var result = await moduleContentsController.AddModuleContent(testModuleContent); var notFoundObjectResult = Assert.IsType <NotFoundObjectResult>(result); var returnValue = Assert.IsType <long>(notFoundObjectResult.Value); Assert.Equal(notValidId, returnValue); }
public async void GetModuleContentByModuleId_CalledWithInvalidId_ReturnsNotFoundWithId() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var testId = 1235; List <ModuleContent> nullModuleContents = null; unitOfWork.ModuleContents.GetModuleContentsByModuleId(testId).Returns(nullModuleContents); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); var result = await moduleContentsController.GetModuleContentByModuleId(testId); var notFoundObjectResult = Assert.IsType <NotFoundObjectResult>(result); var returnValue = Assert.IsType <long>(notFoundObjectResult.Value); Assert.Equal(testId, returnValue); }
public async void GetAllModuleContents_Called_ReturnsOkWithListOfModuleContents() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var testModuleContents = new List <ModuleContent>() { new ModuleContent(), new ModuleContent(), new ModuleContent(), new ModuleContent() }; unitOfWork.ModuleContents.GetAll().Returns(testModuleContents); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); var result = await moduleContentsController.GetAllModuleContents(); var okObjectResult = Assert.IsType <OkObjectResult>(result); var returnValue = Assert.IsType <List <ModuleContent> >(okObjectResult.Value); Assert.Equal(testModuleContents.Count, returnValue.Count); }
public async void ChangeModuleContentOrder_CalledWithValidIds_ReturnsOk() { IUnitOfWork unitOfWork = Substitute.For <IUnitOfWork>(); ICookieManager cookieManager = Substitute.For <ICookieManager>(); var context = Substitute.For <HttpContext>(); long testId = 1; long testcontentId = 1; ModuleContent nullModuleContent = null; string error = "Only Admins can update module content."; unitOfWork.ModuleContents.GetById(testId).Returns(nullModuleContent); cookieManager.GetRoleFromToken(Arg.Any <string>()).Returns(Role.Student.ToString()); var moduleContentsController = new ModuleContentsController(unitOfWork, cookieManager); moduleContentsController.ControllerContext = new ControllerContext() { HttpContext = context }; }