Skip to content

Commit

Permalink
Merge pull request #135 from companieshouse/revert-133-feature/DSND-2789
Browse files Browse the repository at this point in the history
Revert "Feature/dsnd 2789"
  • Loading branch information
SALMANCH007 authored Jul 25, 2024
2 parents 6378647 + 4f6a657 commit aa381ae
Show file tree
Hide file tree
Showing 8 changed files with 15 additions and 251 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
import uk.gov.companieshouse.api.api.CompanyExemptionsApiService;
import uk.gov.companieshouse.api.api.CompanyMetricsApiService;
import uk.gov.companieshouse.pscdataapi.api.ChsKafkaApiService;

Expand All @@ -22,7 +21,4 @@ public abstract class AbstractIntegrationTest extends AbstractMongoConfig {
@MockBean
public CompanyMetricsApiService companyMetricsApiService;

@MockBean
CompanyExemptionsApiService companyExemptionsApiService;

}
15 changes: 2 additions & 13 deletions src/main/java/uk/gov/companieshouse/pscdataapi/models/Links.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ public class Links {
@Field("statement")
private String statement;

@Field("exemptions")
private String exemptions;

public String getSelf() {
return self;
}
Expand All @@ -30,10 +27,6 @@ public void setStatement(String statement) {
this.statement = statement;
}

public String getExemptions() { return exemptions; }

public void setExemptions(String exemptions) { this.exemptions = exemptions; }

@Override
public String toString() {
return "Links{"
Expand All @@ -43,9 +36,6 @@ public String toString() {
+ ", statement='"
+ statement
+ '\''
+ ", exemptions='"
+ exemptions
+ '\''
+ '}';
}

Expand All @@ -59,12 +49,11 @@ public boolean equals(Object object) {
}
Links links = (Links) object;
return Objects.equals(self, links.self)
&& Objects.equals(statement, links.statement)
&& Objects.equals(exemptions, links.exemptions);
&& Objects.equals(statement, links.statement);
}

@Override
public int hashCode() {
return Objects.hash(self, statement, exemptions);
return Objects.hash(self, statement);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,10 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import uk.gov.companieshouse.api.api.CompanyExemptionsApiService;
import uk.gov.companieshouse.api.api.CompanyMetricsApiService;
import uk.gov.companieshouse.api.exemptions.CompanyExemptions;
import uk.gov.companieshouse.api.metrics.MetricsApi;
import uk.gov.companieshouse.api.metrics.RegisterApi;
import uk.gov.companieshouse.api.metrics.RegistersApi;
Expand Down Expand Up @@ -61,21 +57,16 @@ public class CompanyPscService {
private final ChsKafkaApiService chsKafkaApiService;
private final CompanyMetricsApiService companyMetricsApiService;

@Autowired
CompanyExemptionsApiService companyExemptionsApiService;

public CompanyPscService(Logger logger,
CompanyPscTransformer transformer,
CompanyPscRepository repository,
ChsKafkaApiService chsKafkaApiService,
CompanyMetricsApiService companyMetricsApiService,
CompanyExemptionsApiService companyExemptionsApiService) {
CompanyMetricsApiService companyMetricsApiService) {
this.logger = logger;
this.transformer = transformer;
this.repository = repository;
this.chsKafkaApiService = chsKafkaApiService;
this.companyMetricsApiService = companyMetricsApiService;
this.companyExemptionsApiService = companyExemptionsApiService;
}

/**
Expand Down Expand Up @@ -610,12 +601,6 @@ private PscList createPscDocumentList(List<PscDocument> pscDocuments,
pscList.setStartIndex(startIndex);
pscList.setItems(documents);

if (hasPscExemptions(companyNumber)) {
if(hasExemptFrom(companyNumber) && !hasExemptTo(companyNumber)) {
links.setExemptions(String.format("/company/%s/exemptions", companyNumber));
}
}

companyMetrics.ifPresentOrElse(metricsApi -> {
try {
if (registerView) {
Expand Down Expand Up @@ -647,49 +632,4 @@ private PscList createPscDocumentList(List<PscDocument> pscDocuments,
return pscList;
}

private boolean hasPscExemptions(String companyNumber) {
Optional<CompanyExemptions> companyExemptions = companyExemptionsApiService.getCompanyExemptions(companyNumber);

return companyExemptions.filter(x ->
x.getExemptions() != null &&
(x.getExemptions().getPscExemptAsSharesAdmittedOnMarket()!= null ||
x.getExemptions().getPscExemptAsTradingOnEuRegulatedMarket() != null ||
x.getExemptions().getPscExemptAsTradingOnRegulatedMarket() != null ||
x.getExemptions().getPscExemptAsTradingOnUkRegulatedMarket() != null)).isPresent();
}

private boolean hasExemptFrom(String companyNumber) {
Optional<CompanyExemptions> companyExemptions = companyExemptionsApiService.getCompanyExemptions(companyNumber);

return companyExemptions
.map(exemptions -> exemptions.getExemptions())
.filter(exemptions -> exemptions != null)
.map(exemptions -> exemptions.getPscExemptAsSharesAdmittedOnMarket() != null
&& exemptions.getPscExemptAsSharesAdmittedOnMarket().getItems().get(0).getExemptFrom() != null ||
exemptions.getPscExemptAsTradingOnEuRegulatedMarket() != null
&& exemptions.getPscExemptAsTradingOnEuRegulatedMarket().getItems().get(0).getExemptFrom() != null ||
exemptions.getPscExemptAsTradingOnRegulatedMarket() != null
&& exemptions.getPscExemptAsTradingOnRegulatedMarket().getItems().get(0).getExemptFrom() != null ||
exemptions.getPscExemptAsTradingOnUkRegulatedMarket() != null
&& exemptions.getPscExemptAsTradingOnUkRegulatedMarket().getItems().get(0).getExemptFrom() != null)
.orElse(false);
}

private boolean hasExemptTo(String companyNumber) {
Optional<CompanyExemptions> companyExemptions = companyExemptionsApiService.getCompanyExemptions(companyNumber);

return companyExemptions
.map(exemptions -> exemptions.getExemptions())
.filter(exemptions -> exemptions != null)
.map(exemptions -> exemptions.getPscExemptAsSharesAdmittedOnMarket() != null
&& exemptions.getPscExemptAsSharesAdmittedOnMarket().getItems().get(0).getExemptTo() != null ||
exemptions.getPscExemptAsTradingOnEuRegulatedMarket() != null
&& exemptions.getPscExemptAsTradingOnEuRegulatedMarket().getItems().get(0).getExemptTo() != null ||
exemptions.getPscExemptAsTradingOnRegulatedMarket() != null
&& exemptions.getPscExemptAsTradingOnRegulatedMarket().getItems().get(0).getExemptTo() != null ||
exemptions.getPscExemptAsTradingOnUkRegulatedMarket() != null
&& exemptions.getPscExemptAsTradingOnUkRegulatedMarket().getItems().get(0).getExemptTo() != null)
.orElse(false);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,9 @@

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import uk.gov.companieshouse.api.api.CompanyExemptionsApiService;

@SpringBootTest
class PscDataApiApplicationTests {
@MockBean
CompanyExemptionsApiService companyExemptionsApiService;

@Test
void contextLoads() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import uk.gov.companieshouse.api.InternalApiClient;
import uk.gov.companieshouse.api.api.CompanyExemptionsApiService;
import uk.gov.companieshouse.api.chskafka.ChangedResource;
import uk.gov.companieshouse.api.error.ApiErrorResponseException;
import uk.gov.companieshouse.api.handler.chskafka.PrivateChangedResourceHandler;
Expand All @@ -32,9 +31,6 @@ class ResourceChangedApiServiceAspectFeatureFlagDisabledITest {
@InjectMocks
private ChsKafkaApiService chsKafkaApiService;

@MockBean
CompanyExemptionsApiService companyExemptionsApiService;

@MockBean
private ApiClientService apiClientService;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import org.springframework.test.context.ActiveProfiles;

import uk.gov.companieshouse.api.InternalApiClient;
import uk.gov.companieshouse.api.api.CompanyExemptionsApiService;
import uk.gov.companieshouse.api.chskafka.ChangedResource;
import uk.gov.companieshouse.api.error.ApiErrorResponseException;
import uk.gov.companieshouse.api.handler.chskafka.PrivateChangedResourceHandler;
Expand All @@ -30,9 +29,6 @@ class ResourceChangedApiServiceAspectFeatureFlagEnabledITest {
@Autowired
private ChsKafkaApiService chsKafkaApiService;

@MockBean
CompanyExemptionsApiService companyExemptionsApiService;

@MockBean
private ApiClientService apiClientService;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package uk.gov.companieshouse.pscdataapi.service;

import static com.mongodb.internal.connection.tlschannel.util.Util.assertTrue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.mockito.ArgumentMatchers.any;
Expand All @@ -12,7 +11,6 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.io.IOException;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
Expand All @@ -31,23 +29,27 @@
import org.mockito.Mock;
import org.mockito.Spy;
import org.mockito.junit.jupiter.MockitoExtension;
import uk.gov.companieshouse.api.api.CompanyExemptionsApiService;
import uk.gov.companieshouse.api.api.CompanyMetricsApiService;
import uk.gov.companieshouse.api.exemptions.CompanyExemptions;
import uk.gov.companieshouse.api.exemptions.Exemptions;
import uk.gov.companieshouse.api.exemptions.PscExemptAsTradingOnRegulatedMarketItem;
import uk.gov.companieshouse.api.exemptions.PscExemptAsTradingOnUkRegulatedMarketItem;
import uk.gov.companieshouse.api.metrics.MetricsApi;
import uk.gov.companieshouse.api.metrics.RegisterApi;
import uk.gov.companieshouse.api.metrics.RegistersApi;
import uk.gov.companieshouse.api.model.psc.PscLinks;
import uk.gov.companieshouse.api.psc.*;
import uk.gov.companieshouse.api.psc.CorporateEntity;
import uk.gov.companieshouse.api.psc.CorporateEntityBeneficialOwner;
import uk.gov.companieshouse.api.psc.FullRecordCompanyPSCApi;
import uk.gov.companieshouse.api.psc.Identification;
import uk.gov.companieshouse.api.psc.Individual;
import uk.gov.companieshouse.api.psc.IndividualBeneficialOwner;
import uk.gov.companieshouse.api.psc.LegalPerson;
import uk.gov.companieshouse.api.psc.LegalPersonBeneficialOwner;
import uk.gov.companieshouse.api.psc.ListSummary;
import uk.gov.companieshouse.api.psc.PscList;
import uk.gov.companieshouse.api.psc.SuperSecure;
import uk.gov.companieshouse.api.psc.SuperSecureBeneficialOwner;
import uk.gov.companieshouse.logging.Logger;
import uk.gov.companieshouse.pscdataapi.api.ChsKafkaApiService;
import uk.gov.companieshouse.pscdataapi.exceptions.BadRequestException;
import uk.gov.companieshouse.pscdataapi.exceptions.ResourceNotFoundException;
import uk.gov.companieshouse.pscdataapi.models.Created;
import uk.gov.companieshouse.pscdataapi.models.Links;
import uk.gov.companieshouse.pscdataapi.models.PscData;
import uk.gov.companieshouse.pscdataapi.models.PscDocument;
import uk.gov.companieshouse.pscdataapi.repository.CompanyPscRepository;
Expand Down Expand Up @@ -80,16 +82,11 @@ class CompanyPscServiceTest {
@Mock
CompanyMetricsApiService companyMetricsApiService;

@Mock
CompanyExemptionsApiService companyExemptionsApiService;

private FullRecordCompanyPSCApi request;
private PscDocument pscDocument;
private String dateString;
private OffsetDateTime date;
private OffsetDateTime laterDate;
private TestHelper testHelper;
private PscExemptAsTradingOnUkRegulatedMarketItem pscExemptAsTradingOnUkRegulatedMarketItem;

@BeforeEach
void setUp() {
Expand All @@ -99,8 +96,6 @@ void setUp() {

request = TestHelper.buildBasicFullRecordPsc();
pscDocument = TestHelper.buildBasicDocument();
testHelper = new TestHelper();
pscExemptAsTradingOnUkRegulatedMarketItem = new PscExemptAsTradingOnUkRegulatedMarketItem();
}

@Test
Expand Down Expand Up @@ -721,62 +716,4 @@ void whenCompanyNotInPublicRegisterGetPSCListShouldThrow() throws ResourceNotFou
verify(repository, times(0)).getListSummaryRegisterView(COMPANY_NUMBER, 0, OffsetDateTime.parse("2020-12-20T06:00Z"), 25);
}

@Test
void pscListReturnedByCompanyNumberFromRepositoryWithExemptions() throws ResourceNotFoundException {
PscList expectedPscList = TestHelper.createPscListWithExemptions();
PscData pscData = new PscData();
pscDocument.setData(pscData);
ListSummary listSummary = new ListSummary();
Identification identification = new Identification();
identification.setPlaceRegistered("x");
identification.setCountryRegistered("x");
identification.setRegistrationNumber("x");
identification.setLegalAuthority("x");
identification.setLegalForm("x");
listSummary.setIdentification(identification);

when(companyMetricsApiService.getCompanyMetrics(COMPANY_NUMBER))
.thenReturn(Optional.of(TestHelper.createMetrics()));
when(repository.getPscDocumentList(anyString(), anyInt(), anyInt())).thenReturn(Optional.of(Collections.singletonList(pscDocument)));
when(transformer.transformPscDocToListSummary(pscDocument, false))
.thenReturn(listSummary);
when(companyExemptionsApiService.getCompanyExemptions(any())).thenReturn(Optional.ofNullable(testHelper.createExemptions()));

PscList PscDocumentList = service.retrievePscListSummaryFromDb(COMPANY_NUMBER, 0, false, 25);

Assertions.assertEquals(expectedPscList, PscDocumentList);
verify(repository, times(1)).getPscDocumentList(COMPANY_NUMBER, 0, 25);
}

@Test
void hasPscExemptionsReturnsTrueWhenTradingOnUkRegulatedMarket() {
PscData pscData = new PscData();
pscDocument.setData(pscData);
ListSummary listSummary = new ListSummary();
Identification identification = new Identification();
identification.setPlaceRegistered("x");
identification.setCountryRegistered("x");
identification.setRegistrationNumber("x");
identification.setLegalAuthority("x");
identification.setLegalForm("x");
listSummary.setIdentification(identification);
when(repository.getPscDocumentList(anyString(), anyInt(), anyInt())).thenReturn(Optional.of(Collections.singletonList(pscDocument)));
when(transformer.transformPscDocToListSummary(pscDocument, false))
.thenReturn(listSummary);

CompanyExemptions companyExemptions = new CompanyExemptions();
Exemptions exemptions = new Exemptions();
exemptions.setPscExemptAsTradingOnUkRegulatedMarket(pscExemptAsTradingOnUkRegulatedMarketItem);
companyExemptions.setExemptions(testHelper.getUkExemptions());
when(companyExemptionsApiService.getCompanyExemptions(any())).thenReturn(Optional.ofNullable(testHelper.createExemptions()));

PscList PscDocumentList = service.retrievePscListSummaryFromDb(COMPANY_NUMBER, 0, false, 25);

Links links = new Links();
links.setSelf("/company/" + COMPANY_NUMBER + "/persons-with-significant-control");
links.setExemptions("/company/" + COMPANY_NUMBER + "/exemptions");

assertEquals(PscDocumentList.getLinks(), links);
}

}
Loading

0 comments on commit aa381ae

Please sign in to comment.