public async void PostEditRegisteredCompanyOrganisationDetails_ModelIsInvalid_GetsCountriesAndReturnsDefaultView()
        {
            var countries = new List <CountryData>();

            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetCountries> ._))
            .Returns(countries);

            new HttpContextMocker().AttachToController(controller);

            controller.ModelState.AddModelError("SomeProperty", "IsInvalid");

            var viewModel = new EditRegisteredCompanyOrganisationDetailsViewModel
            {
                OrganisationType            = OrganisationType.SoleTraderOrIndividual,
                BusinessAddress             = new Core.Shared.AddressData(),
                CompanyName                 = "CompanyName",
                CompaniesRegistrationNumber = "123456789",
                BusinessTradingName         = "TradingName",
                OrgId    = Guid.NewGuid(),
                SchemeId = Guid.NewGuid()
            };
            var result = await controller.EditRegisteredCompanyOrganisationDetails(viewModel);

            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetCountries> ._))
            .MustHaveHappened(Repeated.Exactly.Once);

            countries.Should().BeSameAs(viewModel.BusinessAddress.Countries);

            result.Should().NotBeNull();
            result.Should().BeOfType <ViewResult>();

            var viewResult = (ViewResult)result;

            viewResult.ViewName.Should().BeEmpty();
            viewModel.Should().BeSameAs(viewResult.Model);
        }