public async Task EditPost_GivenAProductIdThatDoesNotExist_ShouldReturnNotFound() { // Arrange var productServiceMock = new Mock <IProductService>(); int productIdThatDoesNotExist = 0; var productWithIdThatDoesNotExist = new Product() { ProductId = productIdThatDoesNotExist }; productServiceMock.Setup(ps => ps.DoesProductIdExist(productIdThatDoesNotExist)) .ReturnsAsync(false); var authorizationServiceMock = new Mock <IAuthorizationService>(); var mockUserStore = new Mock <IUserStore <IdentityUser> >(); var userManagerMock = new Mock <UserManager <IdentityUser> >(mockUserStore.Object, null, null, null, null, null, null, null, null); var productsController = new ProductsController( productServiceMock.Object, authorizationServiceMock.Object, userManagerMock.Object ); // Act IActionResult actionResult = await productsController.EditPost(productWithIdThatDoesNotExist); // Assert actionResult.ShouldBeOfType <NotFoundResult>(); }
public async Task EditPost_GivenAProductIdThatExistsAsAnUnauthorizedUser_ShouldReturnForbid() { // Arrange var productServiceMock = new Mock <IProductService>(); int productIdThatExists = 1; var productWithIdThatExists = new Product() { ProductId = productIdThatExists }; productServiceMock.Setup(ps => ps.DoesProductIdExist(productIdThatExists)) .ReturnsAsync(true); productServiceMock.Setup(ps => ps.GetProductByIdAsync(productIdThatExists)) .ReturnsAsync(productWithIdThatExists); var authorizationServiceMock = CreateAuthorizationServiceMockThatDoesNotAuthorizeUser(); var mockUserStore = new Mock <IUserStore <IdentityUser> >(); var userManagerMock = new Mock <UserManager <IdentityUser> >(mockUserStore.Object, null, null, null, null, null, null, null, null); var productsController = new ProductsController( productServiceMock.Object, authorizationServiceMock.Object, userManagerMock.Object ); // Act IActionResult actionResult = await productsController.EditPost(productWithIdThatExists); // Assert actionResult.ShouldBeOfType <ForbidResult>(); }