public ResourceBuilders.CompanyProfile Build(CompaniesHouseCompanyProfileClientTestCase testCase)
        {
            var fixture = new Fixture();

            fixture.Customizations.Add(new UniversalDateSpecimenBuilder <ResourceBuilders.LastAccounts>(x => x.MadeUpTo));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder <ResourceBuilders.Accounts>(x => x.NextMadeUpTo));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder <ResourceBuilders.Accounts>(x => x.NextDue));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder <AnnualReturn>(x => x.LastMadeUpTo));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder <AnnualReturn>(x => x.NextDue));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder <AnnualReturn>(x => x.NextMadeUpTo));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder <ResourceBuilders.CompanyProfile>(x => x.DateOfCreation));
            fixture.Customizations.Add(
                new UniversalDateSpecimenBuilder <ResourceBuilders.CompanyProfile>(x => x.DateOfDissolution));
            fixture.Customizations.Add(
                new UniversalDateSpecimenBuilder <ResourceBuilders.CompanyProfile>(x => x.LastFullMembersListDate));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder <ResourceBuilders.Officer>(x => x.AppointedOn));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder <ResourceBuilders.Officer>(x => x.ResignedOn));

            fixture.Customizations.Add(new UniversalNullableDateSpecimenBuilder <ResourceBuilders.ConfirmationStatement>(x => x.NextMadeUpTo));
            fixture.Customizations.Add(new UniversalNullableDateSpecimenBuilder <ResourceBuilders.ConfirmationStatement>(x => x.LastMadeUpTo));
            fixture.Customizations.Add(new UniversalNullableDateSpecimenBuilder <ResourceBuilders.ConfirmationStatement>(x => x.NextDue));

            var lastAccounts = fixture.Build <ResourceBuilders.LastAccounts>()
                               .With(x => x.Type, testCase.LastAccountsType)
                               .Create();

            var accounts = fixture.Build <ResourceBuilders.Accounts>()
                           .With(x => x.LastAccounts, lastAccounts)
                           .Create();

            var officers = EnumerationMappings.PossibleOfficerRoles.Keys.Select(x => fixture.Build <ResourceBuilders.Officer>()
                                                                                .With(y => y.OfficerRole, x)
                                                                                .Create()).ToArray();

            var officerSummary = fixture.Build <ResourceBuilders.OfficerSummary>().With(x => x.Officers, officers).Create();

            var companyProfile = fixture.Build <ResourceBuilders.CompanyProfile>()
                                 .With(x => x.Accounts, accounts)
                                 .With(x => x.CompanyStatus, testCase.CompanyStatus)
                                 .With(x => x.CompanyStatusDetail, testCase.CompanyStatusDetail)
                                 .With(x => x.Jurisdiction, testCase.Jurisdiction)
                                 .With(x => x.Type, testCase.Type)
                                 .With(x => x.OfficerSummary, officerSummary)
                                 .Create();

            return(companyProfile);
        }
        public ResourceBuilders.CompanyProfile Build(CompaniesHouseCompanyProfileClientTestCase testCase)
        {
            var fixture = new Fixture();
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder<ResourceBuilders.LastAccounts>(x => x.MadeUpTo));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder<ResourceBuilders.Accounts>(x => x.NextMadeUpTo));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder<ResourceBuilders.Accounts>(x => x.NextDue));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder<ResourceBuilders.AnnualReturn>(x => x.LastMadeUpTo));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder<ResourceBuilders.AnnualReturn>(x => x.NextDue));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder<ResourceBuilders.AnnualReturn>(x => x.NextMadeUpTo));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder<ResourceBuilders.CompanyProfile>(x => x.DateOfCreation));
            fixture.Customizations.Add(
                new UniversalDateSpecimenBuilder<ResourceBuilders.CompanyProfile>(x => x.DateOfDissolution));
            fixture.Customizations.Add(
                new UniversalDateSpecimenBuilder<ResourceBuilders.CompanyProfile>(x => x.LastFullMembersListDate));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder<ResourceBuilders.Officer>(x => x.AppointedOn));
            fixture.Customizations.Add(new UniversalDateSpecimenBuilder<ResourceBuilders.Officer>(x => x.ResignedOn));

            fixture.Customizations.Add(new UniversalNullableDateSpecimenBuilder<ResourceBuilders.ConfirmationStatement>(x => x.NextMadeUpTo));
            fixture.Customizations.Add(new UniversalNullableDateSpecimenBuilder<ResourceBuilders.ConfirmationStatement>(x => x.LastMadeUpTo));
            fixture.Customizations.Add(new UniversalNullableDateSpecimenBuilder<ResourceBuilders.ConfirmationStatement>(x => x.NextDue));

            var lastAccounts = fixture.Build<ResourceBuilders.LastAccounts>()
                .With(x => x.Type, testCase.LastAccountsType)
                .Create();

            var accounts = fixture.Build<ResourceBuilders.Accounts>()
                .With(x => x.LastAccounts, lastAccounts)
                .Create();

            var officers = EnumerationMappings.PossibleOfficerRoles.Keys.Select(x => fixture.Build<ResourceBuilders.Officer>()
                .With(y => y.OfficerRole, x)
                .Create()).ToArray();

            var officerSummary = fixture.Build<ResourceBuilders.OfficerSummary>().With(x => x.Officers, officers).Create();

            var companyProfile = fixture.Build<ResourceBuilders.CompanyProfile>()
                .With(x => x.Accounts, accounts)
                .With(x => x.CompanyStatus, testCase.CompanyStatus)
                .With(x => x.CompanyStatusDetail, testCase.CompanyStatusDetail)
                .With(x => x.Jurisdiction, testCase.Jurisdiction)
                .With(x => x.Type, testCase.Type)
                .With(x => x.OfficerSummary, officerSummary)
                .Create();

            return companyProfile;
        }
        public void GivenACompaniesHouseCompanyProfileClient_WhenGettingACompanyProfile(CompaniesHouseCompanyProfileClientTestCase testCase)
        {
            _companyProfile = new CompanyProfileBuilder().Build(testCase);
            var resource = new CompanyProfileResourceBuilder(_companyProfile)
                                .Create();

            var uri = new Uri("https://wibble.com/search/companies");

            HttpMessageHandler handler = new StubHttpMessageHandler(uri, resource);

            var uriBuilder = new Mock<ICompanyProfileUriBuilder>();
            uriBuilder.Setup(x => x.Build(It.IsAny<string>()))
                .Returns(uri);

            _client = new CompaniesHouseCompanyProfileClient(new HttpClient(handler), uriBuilder.Object);

            _result = _client.GetCompanyProfileAsync("abc").Result;

            _result.Data.ShouldBeEquivalentTo(_companyProfile);
        }
Exemple #4
0
        public void GivenACompaniesHouseCompanyProfileClient_WhenGettingACompanyProfile(CompaniesHouseCompanyProfileClientTestCase testCase)
        {
            _companyProfile = new CompanyProfileBuilder().Build(testCase);
            var resource = new CompanyProfileResourceBuilder(_companyProfile)
                           .Create();

            var uri = new Uri("https://wibble.com/search/companies");

            HttpMessageHandler handler = new StubHttpMessageHandler(uri, resource);

            var uriBuilder = new Mock <ICompanyProfileUriBuilder>();

            uriBuilder.Setup(x => x.Build(It.IsAny <string>()))
            .Returns(uri);

            _client = new CompaniesHouseCompanyProfileClient(new HttpClient(handler), uriBuilder.Object);

            _result = _client.GetCompanyProfileAsync("abc").Result;

            _result.Data.ShouldBeEquivalentTo(_companyProfile);
        }