public async Task Create_NoAdminPrivileges_NotAddedToDatabase() { // Arrange var identity = new GenericIdentity("Jack"); var principal = new Mock <ClaimsPrincipal>(); var mockService = new Mock <IDifficultyService>(); DifficultyController controller = new DifficultyController(mockService.Object); var controllerContext = new Mock <ControllerContext>(); principal.Setup(p => p.IsInRole("Administrator")) .Returns(false); principal.SetupGet(p => p.Identity.Name).Returns("Jack"); controllerContext.SetupGet(c => c.HttpContext.User) .Returns(principal.Object); controller.ControllerContext = controllerContext.Object; var difficultyListViewModel = new DifficultyCreateViewModel { Name = "Red", Color = "#4286f4" }; // Act var result = await controller.Create(difficultyListViewModel); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("Difficulty", redirectToActionResult.ControllerName); Assert.Equal("Create", redirectToActionResult.ActionName); mockService.Verify(service => service.AddDifficulty(It.IsAny <string>(), It.IsAny <string>()), Times.Never); // checks that the sectionService.AddSection was called once. }
[InlineData("Red", "#4286f45")] // Invalid Color public async Task Create_InputsAreInvalid_NotAddedToDatabaseAndRedirectsToListAction(string name, string color) { // Arrange var mockService = new Mock <IDifficultyService>(); DifficultyController controller = new DifficultyController(mockService.Object); var difficultyListViewModel = new DifficultyCreateViewModel { Name = name, Color = color }; // Act var result = await controller.Create(difficultyListViewModel); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("Difficulty", redirectToActionResult.ControllerName); Assert.Equal("Create", redirectToActionResult.ActionName); mockService.Verify(service => service.AddDifficulty(It.IsAny <string>(), It.IsAny <string>()), Times.Never); // checks that the sectionService.AddSection is never called. }
public async Task Delete_IdInvalid_NotRemovedFromDatabaseAndRedirectsToListAction() { // Arrange var mockService = new Mock <IDifficultyService>(); DifficultyController controller = new DifficultyController(mockService.Object); var difficultyListViewModel = new DifficultyCreateViewModel { ID = null }; // Act var result = await controller.Create(difficultyListViewModel); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("Difficulty", redirectToActionResult.ControllerName); Assert.Equal("Create", redirectToActionResult.ActionName); mockService.Verify(service => service.RemoveDifficulty(It.IsAny <int?>()), Times.Never); }
public void List_ValidDifficultyListViewModel_ReturnViewWithDifficultyListViewModel() { // Arrange var mockService = new Mock <IDifficultyService>(); mockService.Setup(service => service.GetAllDifficulties()) .Returns(new List <RouteDifficulty> { new RouteDifficulty { }, new RouteDifficulty { } }); DifficultyController controller = new DifficultyController(mockService.Object); // Act var result = controller.Create(); // Assert var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsAssignableFrom <DifficultyCreateViewModel>( viewResult.ViewData.Model); Assert.Equal(2, model.Difficulties.Count); }