public async Task EditPostRedirectToAction_WithCorrect_Contoller_ActionAndResourceId() { const int resourceId = 2; var mockMediator = new Mock <IMediator>(); var campaignSummaryViewModel = new CampaignSummaryViewModel { Id = 2, OrganizationId = 5, Name = "OrgName" }; mockMediator.Setup(m => m.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(campaignSummaryViewModel); mockMediator.Setup(m => m.SendAsync(It.IsAny <CreateOrEditResourceCommand>())).ReturnsAsync(resourceId); var sut = new ResourceController(mockMediator.Object); sut.MakeUserAnOrgAdmin(campaignSummaryViewModel.OrganizationId.ToString()); var resourceEditViewModel = new ResourceEditViewModel { Id = 1, CampaignId = 2 }; var result = await sut.Edit(resourceEditViewModel) as RedirectToActionResult; result.ShouldNotBeNull(); result.ActionName.ShouldBe(nameof(ResourceController.Details)); result.ControllerName.ShouldBe(nameof(Resource)); result.RouteValues["resourceId"].ShouldBe(resourceId); }
public async Task <IActionResult> Create(int campaignId) { var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = campaignId }); if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId)) { return(Unauthorized()); } var viewModel = new ResourceEditViewModel { CampaignId = campaign.Id, CampaignName = campaign.Name }; return(View("Edit", viewModel)); }
public async Task <IActionResult> Create(ResourceEditViewModel viewModel) { var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = viewModel.CampaignId }); if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId)) { return(Unauthorized()); } if (!ModelState.IsValid) { return(View("Edit", viewModel)); } var id = await _mediator.SendAsync(new CreateOrEditResourceCommand { Resource = viewModel }); return(RedirectToAction(nameof(CampaignController.Details), "Campaign", new { area = "Admin", id = viewModel.CampaignId })); }
public async Task <IActionResult> Edit(ResourceEditViewModel viewModel) { if (!ModelState.IsValid) { return(View(viewModel)); } var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = viewModel.CampaignId }); if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId)) { return(Unauthorized()); } var resourceId = await _mediator.SendAsync(new CreateOrEditResourceCommand { Resource = viewModel }); return(RedirectToAction(nameof(Details), nameof(Resource), new { resourceId })); }
public async Task EditPostSendsEditResourceCommandWithCorrectResource() { var mockMediator = new Mock <IMediator>(); var campaignSummaryViewModel = new CampaignSummaryViewModel { Id = 2, OrganizationId = 5, Name = "OrgName" }; mockMediator.Setup(m => m.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(campaignSummaryViewModel); mockMediator.Setup(m => m.SendAsync(It.IsAny <CreateOrEditResourceCommand>())).ReturnsAsync(It.IsAny <int>()); var sut = new ResourceController(mockMediator.Object); sut.MakeUserAnOrgAdmin(campaignSummaryViewModel.OrganizationId.ToString()); var resourceEditViewModel = new ResourceEditViewModel(); var result = await sut.Edit(resourceEditViewModel) as RedirectToActionResult; result.ShouldNotBeNull(); mockMediator.Verify(m => m.SendAsync(It.Is <CreateOrEditResourceCommand>(e => e.Resource == resourceEditViewModel)), Times.Once); }
public async Task EditResource() { var resource = Context.Resources.First(); var resourceEditViewModel = new ResourceEditViewModel { Id = resource.Id, Name = resource.Name }; resourceEditViewModel.Name = "ChangedName"; var createOrEditResourceCommand = new CreateOrEditResourceCommand { Resource = resourceEditViewModel }; var sut = new CreateOrEditResourceCommandHandler(Context); var result = await sut.Handle(createOrEditResourceCommand); result.ShouldNotBeNull(); Context.Resources.Single(r => r.Id == result).Name.ShouldBe(resourceEditViewModel.Name); }
public async Task CreatePostRedirectToActionWithTheCorrectCampaignId_AfterRsourceCreated() { var campaignSummaryViewModel = new CampaignSummaryViewModel { Id = 4, OrganizationId = 1, Name = "TestCampaign" }; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(m => m.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(campaignSummaryViewModel); var sut = new ResourceController(mockMediator.Object); sut.MakeUserAnOrgAdmin(campaignSummaryViewModel.OrganizationId.ToString()); var resourceEditViewModel = new ResourceEditViewModel(); var result = await sut.Create(resourceEditViewModel) as RedirectToActionResult; result.ShouldNotBeNull(); result.ShouldBeOfType <RedirectToActionResult>(); result.ActionName.ShouldBe(nameof(CampaignController.Details)); result.ControllerName.ShouldBe(nameof(Campaign)); result.RouteValues["area"].ShouldBe(AreaNames.Admin); result.RouteValues["id"].ShouldBe(resourceEditViewModel.CampaignId); }
public async Task <IActionResult> Edit(int id) { var resource = await _mediator.SendAsync(new ResourceDetailQuery { ResourceId = id }); var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = resource.CampaignId }); if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId)) { return(Unauthorized()); } var viewModel = new ResourceEditViewModel { CampaignId = campaign.Id, CampaignName = campaign.Name, Id = resource.Id, Name = resource.Name, Description = resource.Description, ResourceUrl = resource.ResourceUrl }; return(View("Edit", viewModel)); }
public async Task CreateResource() { var resourceEditViewModel = new ResourceEditViewModel { CampaignId = 1, CampaignName = "CampaignName", Name = "ResourceName", Description = "TestDescription", ResourceUrl = "/url/" }; var createOrEditResourceCommand = new CreateOrEditResourceCommand { Resource = resourceEditViewModel }; var sut = new CreateOrEditResourceCommandHandler(Context); var result = await sut.Handle(createOrEditResourceCommand); result.ShouldNotBeNull(); Context.Resources.Any(r => r.Id == result).ShouldBeTrue(); }