Skip to content

Commit

Permalink
Merge pull request #142 from companieshouse/IDVA6-1485-added-company-…
Browse files Browse the repository at this point in the history
…status

Added company_status to Association
  • Loading branch information
krishna-patel-ch authored Aug 29, 2024
2 parents 02204d7 + a4c30f9 commit 7acad7b
Show file tree
Hide file tree
Showing 9 changed files with 37 additions and 22 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<common-web-java.version>3.0.0</common-web-java.version>
<encryption-java-library.version>2.0.3</encryption-java-library.version>
<rest-service-common-library-version>2.0.2</rest-service-common-library-version>
<private-api-sdk-java.version>4.0.185</private-api-sdk-java.version>
<private-api-sdk-java.version>4.0.190</private-api-sdk-java.version>
<api-sdk-manager-java-library.version>3.0.5</api-sdk-manager-java-library.version>
<api-security-java-version>2.0.6</api-security-java-version>
<org.mapstruct.version>1.6.0.RC1</org.mapstruct.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public AssociationMapper(final MapperUtil mapperUtil, final BaseMapper baseMappe

protected void enrichAssociation(Association association) {
mapperUtil.enrichAssociationWithUserDetails(association);
mapperUtil.enrichAssociationWithCompanyName(association);
mapperUtil.enrichAssociationWithCompanyDetails(association);
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import org.springframework.stereotype.Component;
import uk.gov.companieshouse.accounts.association.models.AssociationDao;
import uk.gov.companieshouse.accounts.association.utils.MapperUtil;
import uk.gov.companieshouse.api.accounts.associations.model.Association.CompanyStatusEnum;
import uk.gov.companieshouse.api.accounts.associations.model.AssociationsList;
import uk.gov.companieshouse.api.company.CompanyDetails;

Expand All @@ -29,6 +30,7 @@ public AssociationsList daoToDto(final Page<AssociationDao> associationsList, fi
.map(mapperUtil::enrichAssociationWithUserDetails)
.map(association -> {
association.setCompanyName(companyDetails.getCompanyName());
association.setCompanyStatus( CompanyStatusEnum.fromValue( companyDetails.getCompanyStatus() ) );
return association;
});
return mapperUtil.enrichWithMetadata(associationList, END_POINT_URL.concat(companyDetails.getCompanyNumber()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public AssociationsListUserMapper(final BaseMapper baseMapper, final MapperUtil

public AssociationsList daoToDto(final Page<AssociationDao> associationsList, @NotNull final User user) {
var associationList = associationsList.map(baseMapper::daoToDto)
.map(mapperUtil::enrichAssociationWithCompanyName)
.map(mapperUtil::enrichAssociationWithCompanyDetails)
.map(association -> {
association.setUserEmail(user.getEmail());
association.setDisplayName(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import uk.gov.companieshouse.accounts.association.service.CompanyService;
import uk.gov.companieshouse.accounts.association.service.UsersService;
import uk.gov.companieshouse.api.accounts.associations.model.Association;
import uk.gov.companieshouse.api.accounts.associations.model.Association.CompanyStatusEnum;
import uk.gov.companieshouse.api.accounts.associations.model.AssociationsList;
import uk.gov.companieshouse.api.accounts.associations.model.Invitation;
import uk.gov.companieshouse.api.accounts.associations.model.Links;
Expand Down Expand Up @@ -58,9 +59,10 @@ public Invitation enrichInvitation(Invitation invitation) {
return invitation;
}

public Association enrichAssociationWithCompanyName(final Association association) {
public Association enrichAssociationWithCompanyDetails(final Association association) {
final var companyProfile = companyService.fetchCompanyProfile(association.getCompanyNumber());
association.setCompanyName(companyProfile.getCompanyName());
association.setCompanyStatus( CompanyStatusEnum.fromValue( companyProfile.getCompanyStatus() ) );
return association;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -898,23 +898,23 @@ private void instantiateUserDtoSuppliers(){
}

private void instantiateCompanyDtoSuppliers(){
companyDetailsDtoSuppliers.put( "111111", () -> new CompanyDetails().companyNumber( "111111" ).companyName( "Wayne Enterprises" ) );
companyDetailsDtoSuppliers.put( "333333", () -> new CompanyDetails().companyNumber( "333333" ).companyName( "Tesco" ) );
companyDetailsDtoSuppliers.put( "444444", () -> new CompanyDetails().companyNumber( "444444" ).companyName( "Sainsbury's" ) );
companyDetailsDtoSuppliers.put( "555555", () -> new CompanyDetails().companyNumber( "555555" ).companyName( "Morrison" ) );
companyDetailsDtoSuppliers.put( "666666", () -> new CompanyDetails().companyNumber( "666666" ).companyName( "Aldi" ) );
companyDetailsDtoSuppliers.put( "777777", () -> new CompanyDetails().companyNumber( "777777" ).companyName( "Lidl" ) );
companyDetailsDtoSuppliers.put( "888888", () -> new CompanyDetails().companyNumber( "888888" ).companyName( "McDonald's" ) );
companyDetailsDtoSuppliers.put( "999999", () -> new CompanyDetails().companyNumber( "999999" ).companyName( "Burger King" ) );
companyDetailsDtoSuppliers.put( "x111111", () -> new CompanyDetails().companyNumber( "x111111" ).companyName( "Pizza Hut" ) );
companyDetailsDtoSuppliers.put( "x222222", () -> new CompanyDetails().companyNumber( "x222222" ).companyName( "Dominos" ) );
companyDetailsDtoSuppliers.put( "x333333", () -> new CompanyDetails().companyNumber( "x333333" ).companyName( "Pizza Express" ) );
companyDetailsDtoSuppliers.put( "x444444", () -> new CompanyDetails().companyNumber( "x444444" ).companyName( "Nandos" ) );
companyDetailsDtoSuppliers.put( "x555555", () -> new CompanyDetails().companyNumber( "x555555" ).companyName( "Subway" ) );
companyDetailsDtoSuppliers.put( "x666666", () -> new CompanyDetails().companyNumber( "x666666" ).companyName( "Greggs" ) );
companyDetailsDtoSuppliers.put( "x777777", () -> new CompanyDetails().companyNumber( "x777777" ).companyName( "Facebook" ) );
companyDetailsDtoSuppliers.put( "x888888", () -> new CompanyDetails().companyNumber( "x888888" ).companyName( "Twitter" ) );
companyDetailsDtoSuppliers.put( "x999999", () -> new CompanyDetails().companyNumber( "x999999" ).companyName( "Instram" ) );
companyDetailsDtoSuppliers.put( "111111", () -> new CompanyDetails().companyNumber( "111111" ).companyName( "Wayne Enterprises" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "333333", () -> new CompanyDetails().companyNumber( "333333" ).companyName( "Tesco" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "444444", () -> new CompanyDetails().companyNumber( "444444" ).companyName( "Sainsbury's" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "555555", () -> new CompanyDetails().companyNumber( "555555" ).companyName( "Morrison" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "666666", () -> new CompanyDetails().companyNumber( "666666" ).companyName( "Aldi" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "777777", () -> new CompanyDetails().companyNumber( "777777" ).companyName( "Lidl" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "888888", () -> new CompanyDetails().companyNumber( "888888" ).companyName( "McDonald's" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "999999", () -> new CompanyDetails().companyNumber( "999999" ).companyName( "Burger King" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "x111111", () -> new CompanyDetails().companyNumber( "x111111" ).companyName( "Pizza Hut" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "x222222", () -> new CompanyDetails().companyNumber( "x222222" ).companyName( "Dominos" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "x333333", () -> new CompanyDetails().companyNumber( "x333333" ).companyName( "Pizza Express" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "x444444", () -> new CompanyDetails().companyNumber( "x444444" ).companyName( "Nandos" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "x555555", () -> new CompanyDetails().companyNumber( "x555555" ).companyName( "Subway" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "x666666", () -> new CompanyDetails().companyNumber( "x666666" ).companyName( "Greggs" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "x777777", () -> new CompanyDetails().companyNumber( "x777777" ).companyName( "Facebook" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "x888888", () -> new CompanyDetails().companyNumber( "x888888" ).companyName( "Twitter" ).companyStatus( "active" ) );
companyDetailsDtoSuppliers.put( "x999999", () -> new CompanyDetails().companyNumber( "x999999" ).companyName( "Instram" ).companyStatus( "active" ) );
}

private TestDataManager(){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import uk.gov.companieshouse.accounts.association.service.UsersService;
import uk.gov.companieshouse.accounts.association.utils.MapperUtil;
import uk.gov.companieshouse.api.accounts.associations.model.Association.ApprovalRouteEnum;
import uk.gov.companieshouse.api.accounts.associations.model.Association.CompanyStatusEnum;
import uk.gov.companieshouse.api.accounts.associations.model.Association.StatusEnum;
import uk.gov.companieshouse.api.accounts.associations.model.AssociationLinks;

Expand Down Expand Up @@ -67,6 +68,8 @@ void enrichAssociationWithUserDetailsWithoutDisplayNameSetsDefaultDisplayName()

Assertions.assertEquals("the.joker@gotham.city", association.getUserEmail());
Assertions.assertEquals(DEFAULT_DISPLAY_NAME, association.getDisplayName());
Assertions.assertEquals( "Wayne Enterprises", association.getCompanyName() );
Assertions.assertEquals( CompanyStatusEnum.ACTIVE, association.getCompanyStatus() );
}

@Test
Expand All @@ -82,6 +85,8 @@ void enrichAssociationWithUserDetailsSetsDisplayName() {

Assertions.assertEquals("bruce.wayne@gotham.city", association.getUserEmail());
Assertions.assertEquals("Batman", association.getDisplayName());
Assertions.assertEquals( "Wayne Enterprises", association.getCompanyName() );
Assertions.assertEquals( CompanyStatusEnum.ACTIVE, association.getCompanyStatus() );
}

@Test
Expand Down Expand Up @@ -110,6 +115,8 @@ void daoToDtoWithOnlyMandatoryFieldsSuccessfullyPerformsMapping() {
Assertions.assertEquals("bruce.wayne@gotham.city", dto.getUserEmail());
Assertions.assertEquals("Batman", dto.getDisplayName());
Assertions.assertEquals("/associations/1", links.getSelf());
Assertions.assertEquals( "Wayne Enterprises", dto.getCompanyName() );
Assertions.assertEquals( CompanyStatusEnum.ACTIVE, dto.getCompanyStatus() );
Assertions.assertEquals(DEFAULT_KIND, dto.getKind());
}

Expand All @@ -125,6 +132,6 @@ void daoToDtoWithAllFieldsSuccessfullyPerformsMapping() {

final var associationDto = associationUserDaoToDtoMapper.daoToDto(associationDao);

Assertions.assertTrue( comparisonUtils.compare( expectedAssociationDto, List.of( "etag", "id", "userId", "userEmail", "displayName", "companyNumber", "companyName", "status", "createdAt", "approvedAt", "removedAt", "kind", "approvalRoute", "approvalExpiryAt", "links" ), List.of(), Map.of( "createdAt", new ReduceTimeStampResolutionPreprocessor(),"approvedAt", new ReduceTimeStampResolutionPreprocessor(), "removedAt", new ReduceTimeStampResolutionPreprocessor(), "approvalExpiryAt", new ReduceTimeStampResolutionPreprocessor() ) ).matches( associationDto ) );
Assertions.assertTrue( comparisonUtils.compare( expectedAssociationDto, List.of( "etag", "id", "userId", "userEmail", "displayName", "companyNumber", "companyName", "companyStatus", "status", "createdAt", "approvedAt", "removedAt", "kind", "approvalRoute", "approvalExpiryAt", "links" ), List.of(), Map.of( "createdAt", new ReduceTimeStampResolutionPreprocessor(),"approvedAt", new ReduceTimeStampResolutionPreprocessor(), "removedAt", new ReduceTimeStampResolutionPreprocessor(), "approvalExpiryAt", new ReduceTimeStampResolutionPreprocessor() ) ).matches( associationDto ) );
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import uk.gov.companieshouse.accounts.association.service.CompanyService;
import uk.gov.companieshouse.accounts.association.service.UsersService;
import uk.gov.companieshouse.accounts.association.utils.MapperUtil;
import uk.gov.companieshouse.api.accounts.associations.model.Association.CompanyStatusEnum;
import uk.gov.companieshouse.api.company.CompanyDetails;

import java.util.ArrayList;
Expand Down Expand Up @@ -70,6 +71,7 @@ void daoToDtoReturnsAssociationsList() {
Assertions.assertTrue(items.stream().map(uk.gov.companieshouse.api.accounts.associations.model.Association::getUserId).toList().containsAll(List.of("111","222")));
Assertions.assertTrue(items.stream().map(uk.gov.companieshouse.api.accounts.associations.model.Association::getUserEmail).toList().containsAll(List.of("bruce.wayne@gotham.city", "the.joker@gotham.city")));
Assertions.assertTrue(items.stream().map(uk.gov.companieshouse.api.accounts.associations.model.Association::getCompanyName).allMatch(companyName -> companyName.equals("Wayne Enterprises")));
Assertions.assertTrue(items.stream().map(uk.gov.companieshouse.api.accounts.associations.model.Association::getCompanyStatus).allMatch(companyStatus -> companyStatus.equals( CompanyStatusEnum.ACTIVE )));
Assertions.assertEquals("/associations/companies/111111?page_index=0&items_per_page=2", links.getSelf());
Assertions.assertEquals(String.format("/associations/companies/111111?page_index=%d&items_per_page=%d", 1, 2), links.getNext());
Assertions.assertEquals(0, associationsList.getPageNumber());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import uk.gov.companieshouse.accounts.association.utils.MapperUtil;

import java.util.Arrays;
import uk.gov.companieshouse.api.accounts.associations.model.Association.CompanyStatusEnum;

@ExtendWith(MockitoExtension.class)
@Tag("unit-test")
Expand Down Expand Up @@ -58,6 +59,7 @@ void daoToDtoWithAllFieldsSuccessfullyPerformsMapping() {
Assertions.assertTrue(items.stream().map(uk.gov.companieshouse.api.accounts.associations.model.Association::getUserId).toList().contains("111"));
Assertions.assertTrue(items.stream().map(uk.gov.companieshouse.api.accounts.associations.model.Association::getUserEmail).toList().contains("bruce.wayne@gotham.city"));
Assertions.assertTrue(items.stream().map(uk.gov.companieshouse.api.accounts.associations.model.Association::getCompanyName).toList().containsAll(Arrays.asList("Wayne Enterprises", "Tesco")));
Assertions.assertTrue(items.stream().map(uk.gov.companieshouse.api.accounts.associations.model.Association::getCompanyStatus).allMatch(companyStatus -> companyStatus.equals( CompanyStatusEnum.ACTIVE )));
Assertions.assertEquals("/associations?page_index=0&items_per_page=2", links.getSelf());
Assertions.assertEquals(String.format("/associations?page_index=%d&items_per_page=%d", 1, 2), links.getNext());
Assertions.assertEquals(0, dto.getPageNumber());
Expand Down

0 comments on commit 7acad7b

Please sign in to comment.