コード例 #1
0
        public async void IndexPost_OnSubmit_PageRedirectsToSiteList()
        {
            var httpContext = new HttpContextMocker();

            httpContext.AttachToController(controller);

            var organisationId = Guid.NewGuid();
            var returnId       = Guid.NewGuid();
            var aatfId         = Guid.NewGuid();

            var viewModel = new ReusedOffSiteCreateSiteViewModel
            {
                OrganisationId = organisationId,
                ReturnId       = returnId,
                AatfId         = aatfId,
            };

            httpContext.RouteData.Values.Add("organisationId", organisationId);
            httpContext.RouteData.Values.Add("returnId", returnId);
            httpContext.RouteData.Values.Add("aatfId", aatfId);

            var result = await controller.Index(viewModel) as RedirectToRouteResult;

            result.RouteValues["action"].Should().Be("Index");
            result.RouteValues["controller"].Should().Be("ReusedOffSiteSummaryList");
            result.RouteValues["organisationId"].Should().Be(organisationId);
            result.RouteValues["returnId"].Should().Be(returnId);
            result.RouteValues["aatfId"].Should().Be(aatfId);
        }
コード例 #2
0
        public void ViewModelToRequest_GivenAddViewModel_RequestTypeShouldBeAdd()
        {
            var model = new ReusedOffSiteCreateSiteViewModel();

            var request = requestCreator.ViewModelToRequest(model);

            request.Should().BeOfType <AddAatfSite>();
        }
コード例 #3
0
        public void Edit_GivenSiteIdHasNoValue_FalseShouldBeReturned()
        {
            var model = new ReusedOffSiteCreateSiteViewModel()
            {
                SiteId = null
            };

            model.Edit.Should().BeFalse();
        }
コード例 #4
0
        public void Edit_GivenSiteIdHasValue_TrueShouldBeReturned()
        {
            var model = new ReusedOffSiteCreateSiteViewModel()
            {
                SiteId = Guid.NewGuid()
            };

            model.Edit.Should().BeTrue();
        }
コード例 #5
0
        public async void IndexGet_GivenActionAndParameters_ReusedOffSiteCreateSiteViewModelShouldBeReturned()
        {
            var model = new ReusedOffSiteCreateSiteViewModel();

            A.CallTo(() => mapper.Map(A <SiteAddressDataToReusedOffSiteCreateSiteViewModelMapTransfer> ._)).Returns(model);

            var result = await controller.Index(A.Dummy <Guid>(), A.Dummy <Guid>(), A.Dummy <Guid>(), A.Dummy <Guid>()) as ViewResult;

            Assert.Equal(result.Model, model);
        }
コード例 #6
0
        public void ViewModelToRequest_GivenEditViewModel_RequestTypeShouldBeEdit()
        {
            var model = new ReusedOffSiteCreateSiteViewModel {
                SiteId = Guid.NewGuid(), AddressData = { Id = Guid.NewGuid() }
            };

            var request = requestCreator.ViewModelToRequest(model);

            request.Should().BeOfType <EditAatfSite>();
        }
コード例 #7
0
        public async void IndexPost_GivenValidViewModel_ApiSendShouldBeCalled()
        {
            var model   = new ReusedOffSiteCreateSiteViewModel();
            var request = new AddAatfSite();

            A.CallTo(() => requestCreator.ViewModelToRequest(model)).Returns(request);

            await controller.Index(model);

            A.CallTo(() => weeeClient.SendAsync(A <string> ._, request)).MustHaveHappened(Repeated.Exactly.Once);
        }
コード例 #8
0
        public void ViewModelToRequest_GivenEditViewModel_CategoryValuesShouldBeMapped()
        {
            var viewModel = new ReusedOffSiteCreateSiteViewModel
            {
                SiteId = Guid.NewGuid()
            };

            var request = requestCreator.ViewModelToRequest(viewModel) as EditAatfSite;

            request.AddressData.Should().Be(viewModel.AddressData);
        }
コード例 #9
0
        public async void IndexPost_GivenInvalidViewModel_ApiShouldBeCalled()
        {
            var model = new ReusedOffSiteCreateSiteViewModel()
            {
                AddressData = new SiteAddressData()
            };

            controller.ModelState.AddModelError("error", "error");

            await controller.Index(model);

            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetCountries> ._)).MustHaveHappened(Repeated.Exactly.Once);
        }
コード例 #10
0
        public void ViewModelToRequest_GivenValidViewModel_PropertiesShouldBeMapped()
        {
            var viewModel = new ReusedOffSiteCreateSiteViewModel()
            {
                AatfId         = Guid.NewGuid(),
                OrganisationId = Guid.NewGuid(),
                ReturnId       = Guid.NewGuid(),
                AddressData    = A.Fake <SiteAddressData>(),
            };

            var request = requestCreator.ViewModelToRequest(viewModel) as AddAatfSite;

            request.AatfId.Should().Be(viewModel.AatfId);
            request.OrganisationId.Should().Be(viewModel.OrganisationId);
            request.ReturnId.Should().Be(viewModel.ReturnId);
            request.AddressData.Should().Be(viewModel.AddressData);
        }
コード例 #11
0
        public AatfSite ViewModelToRequest(ReusedOffSiteCreateSiteViewModel viewModel)
        {
            if (viewModel.Edit)
            {
                return(new EditAatfSite()
                {
                    AddressData = viewModel.AddressData
                });
            }

            return(new AddAatfSite()
            {
                OrganisationId = viewModel.OrganisationId,
                ReturnId = viewModel.ReturnId,
                AatfId = viewModel.AatfId,
                AddressData = viewModel.AddressData
            });
        }
コード例 #12
0
        public async void IndexPost_GivenInvalidViewModel_BreadcrumbShouldBeSet()
        {
            var          organisationId = Guid.NewGuid();
            const string orgName        = "orgName";
            var          model          = new ReusedOffSiteCreateSiteViewModel()
            {
                OrganisationId = organisationId, AddressData = new SiteAddressData()
            };

            controller.ModelState.AddModelError("error", "error");

            A.CallTo(() => cache.FetchOrganisationName(organisationId)).Returns(orgName);

            await controller.Index(model);

            breadcrumb.ExternalActivity.Should().Be(BreadCrumbConstant.AatfReturn);
            breadcrumb.ExternalOrganisation.Should().Be(orgName);
            breadcrumb.OrganisationId.Should().Be(organisationId);
        }
コード例 #13
0
        private async Task <ActionResult> AatfSitePostAction(ReusedOffSiteCreateSiteViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                using (var client = apiClient())
                {
                    var request = requestCreator.ViewModelToRequest(viewModel);

                    await client.SendAsync(User.GetAccessToken(), request);

                    return(AatfRedirect.ReusedOffSiteSummaryList(viewModel.ReturnId, viewModel.AatfId, viewModel.OrganisationId));
                }
            }

            using (var client = apiClient())
            {
                viewModel.AddressData.Countries = await client.SendAsync(User.GetAccessToken(), new GetCountries(false));
            }

            await SetBreadcrumb(viewModel.OrganisationId, BreadCrumbConstant.AatfReturn, viewModel.AatfId, DisplayHelper.YearQuarterPeriodFormat(TempData["currentQuarter"] as Quarter, TempData["currentQuarterWindow"] as QuarterWindow));

            return(View(viewModel));
        }
コード例 #14
0
 public virtual async Task <ActionResult> Index(ReusedOffSiteCreateSiteViewModel viewModel)
 {
     return(await AatfSitePostAction(viewModel));
 }