From a4c30f9c7e5fac7b56afcde53d8ee04957982547 Mon Sep 17 00:00:00 2001 From: krishna-patel-ch Date: Thu, 29 Aug 2024 12:49:37 +0100 Subject: [PATCH] Added company_status to Association --- pom.xml | 2 +- .../association/mapper/AssociationMapper.java | 2 +- .../mapper/AssociationsListCompanyMapper.java | 2 ++ .../mapper/AssociationsListUserMapper.java | 2 +- .../association/utils/MapperUtil.java | 4 ++- .../association/common/TestDataManager.java | 34 +++++++++---------- .../mapper/AssociationMapperTest.java | 9 ++++- .../AssociationsListCompanyMapperTest.java | 2 ++ .../AssociationsListUserMapperTest.java | 2 ++ 9 files changed, 37 insertions(+), 22 deletions(-) diff --git a/pom.xml b/pom.xml index 518e819d..b75ea13f 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ 3.0.0 2.0.3 2.0.2 - 4.0.185 + 4.0.190 3.0.5 2.0.6 1.6.0.RC1 diff --git a/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationMapper.java b/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationMapper.java index e8decfa7..3b8f99ac 100644 --- a/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationMapper.java +++ b/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationMapper.java @@ -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); } diff --git a/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListCompanyMapper.java b/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListCompanyMapper.java index dd86d18b..6109339b 100644 --- a/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListCompanyMapper.java +++ b/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListCompanyMapper.java @@ -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; @@ -29,6 +30,7 @@ public AssociationsList daoToDto(final Page 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())); diff --git a/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListUserMapper.java b/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListUserMapper.java index bda1e29b..be6ae28c 100644 --- a/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListUserMapper.java +++ b/src/main/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListUserMapper.java @@ -32,7 +32,7 @@ public AssociationsListUserMapper(final BaseMapper baseMapper, final MapperUtil public AssociationsList daoToDto(final Page 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( diff --git a/src/main/java/uk/gov/companieshouse/accounts/association/utils/MapperUtil.java b/src/main/java/uk/gov/companieshouse/accounts/association/utils/MapperUtil.java index 7c39a024..117da92b 100644 --- a/src/main/java/uk/gov/companieshouse/accounts/association/utils/MapperUtil.java +++ b/src/main/java/uk/gov/companieshouse/accounts/association/utils/MapperUtil.java @@ -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; @@ -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; } diff --git a/src/test/java/uk/gov/companieshouse/accounts/association/common/TestDataManager.java b/src/test/java/uk/gov/companieshouse/accounts/association/common/TestDataManager.java index 61903310..9349f383 100644 --- a/src/test/java/uk/gov/companieshouse/accounts/association/common/TestDataManager.java +++ b/src/test/java/uk/gov/companieshouse/accounts/association/common/TestDataManager.java @@ -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(){ diff --git a/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationMapperTest.java b/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationMapperTest.java index fcb94da1..3240b192 100644 --- a/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationMapperTest.java +++ b/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationMapperTest.java @@ -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; @@ -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 @@ -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 @@ -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()); } @@ -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 ) ); } } diff --git a/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListCompanyMapperTest.java b/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListCompanyMapperTest.java index 7f33c39b..85bc5bea 100644 --- a/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListCompanyMapperTest.java +++ b/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListCompanyMapperTest.java @@ -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; @@ -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()); diff --git a/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListUserMapperTest.java b/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListUserMapperTest.java index 1bfcb1f9..7d39439b 100644 --- a/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListUserMapperTest.java +++ b/src/test/java/uk/gov/companieshouse/accounts/association/mapper/AssociationsListUserMapperTest.java @@ -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") @@ -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());