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);
        }
Example #2
0
        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);
        }