public async Task DeleteReturnsTheCorrectViewModel() { var campaignSummaryViewModel = new CampaignSummaryViewModel { Id = 4, OrganizationId = 1, Name = "TestCampaign" }; var deleteResourceQuery = new ResourceDeleteViewModel { Id = 1, CampaignId = 4 }; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(m => m.SendAsync(It.IsAny <DeleteResourceQuery>())).ReturnsAsync(deleteResourceQuery); mockMediator.Setup(m => m.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(campaignSummaryViewModel); var sut = new ResourceController(mockMediator.Object); sut.MakeUserAnOrgAdmin(campaignSummaryViewModel.OrganizationId.ToString()); var result = await sut.Delete(It.IsAny <int>()) as ViewResult; result.ShouldNotBeNull(); result.ShouldBeOfType <ViewResult>(); result.Model.ShouldBeOfType <ResourceDeleteViewModel>(); result.Model.ShouldBeSameAs(deleteResourceQuery); }
public async Task <IActionResult> DeleteConfirmed(ResourceDeleteViewModel viewModel) { if (!viewModel.UserIsOrgAdmin) { return(Unauthorized()); } await _mediator.SendAsync(new DeleteResourceCommand { ResourceId = viewModel.Id }); return(RedirectToAction(nameof(CampaignController.Details), "Campaign", new { area = "Admin", id = viewModel.CampaignId })); }
public async Task DeleteConfirmedReturnsUnauthorized_IfUserIsNotOrgAdmin() { var deleteResourceQuery = new ResourceDeleteViewModel { Id = 1, CampaignId = 4, UserIsOrgAdmin = false }; var mockMediator = new Mock <IMediator>(); var sut = new ResourceController(mockMediator.Object); var result = await sut.DeleteConfirmed(deleteResourceQuery) as UnauthorizedResult; result.ShouldNotBeNull(); result.ShouldBeOfType <UnauthorizedResult>(); result.StatusCode.ShouldBe((int)HttpStatusCode.Unauthorized); }
public async Task DeleteConfirmdedSendsDeleteResourceCommand_WithCorrectResourceId() { var deleteResourceQuery = new ResourceDeleteViewModel { Id = 1, CampaignId = 4, UserIsOrgAdmin = true }; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(m => m.SendAsync(It.IsAny <DeleteResourceQuery>())).ReturnsAsync(It.IsAny <ResourceDeleteViewModel>()); var sut = new ResourceController(mockMediator.Object); var result = await sut.DeleteConfirmed(deleteResourceQuery) as RedirectToActionResult; result.ShouldNotBeNull(); mockMediator.Verify(m => m.SendAsync(It.Is <DeleteResourceCommand>(d => d.ResourceId == deleteResourceQuery.Id))); }
public async Task DeleteConfirmdedRedirectToCorrectAction_AfterDeleteHasBeenDone() { var deleteResourceQuery = new ResourceDeleteViewModel { Id = 1, CampaignId = 4, UserIsOrgAdmin = true }; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(m => m.SendAsync(It.IsAny <DeleteResourceQuery>())).ReturnsAsync(It.IsAny <ResourceDeleteViewModel>()); var sut = new ResourceController(mockMediator.Object); var result = await sut.DeleteConfirmed(deleteResourceQuery) as RedirectToActionResult; result.ShouldNotBeNull(); result.ActionName.ShouldBe(nameof(CampaignController.Details)); result.ControllerName.ShouldBe("Campaign"); result.RouteValues["area"].ShouldBe(AreaNames.Admin); result.RouteValues["id"].ShouldBe(deleteResourceQuery.CampaignId); }
public async Task DeleteGetSendsDeleteResourceQueryWithCorrectResourceId() { var deleteResourceQuery = new ResourceDeleteViewModel { Id = 1, CampaignId = 4 }; var campaignSummaryViewModel = new CampaignSummaryViewModel { Id = 4, OrganizationId = 1, Name = "TestCampaign" }; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(m => m.SendAsync(It.IsAny <DeleteResourceQuery>())).ReturnsAsync(deleteResourceQuery); mockMediator.Setup(m => m.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(campaignSummaryViewModel); var sut = new ResourceController(mockMediator.Object); sut.MakeUserAnOrgAdmin(campaignSummaryViewModel.OrganizationId.ToString()); var result = await sut.Delete(deleteResourceQuery.Id) as ViewResult; result.ShouldNotBeNull(); mockMediator.Verify(m => m.SendAsync(It.Is <DeleteResourceQuery>(c => c.ResourceId == deleteResourceQuery.Id)), Times.Once); }