Skip to content

Commit f6edd87

Browse files
SIV-951: Super secure psc should show verification start and end dates in streaming (#217)
* SIV-951: Super secure psc should show verification start and end dates in streaming * Revert "SIV-951: Super secure psc should show verification start and end dates in streaming" This reverts commit 2a1c350. * SIV-951: Modify CompanyPscTransformer * SIV-951: Update private-api-sdk-java to 4.0.407 * SIV-951: Add unit tests
1 parent e9b8ef9 commit f6edd87

File tree

3 files changed

+91
-1
lines changed

3 files changed

+91
-1
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
<commons-lang3.version>3.18.0</commons-lang3.version>
3737
<!-- Internal -->
3838
<structured-logging.version>3.0.43</structured-logging.version>
39-
<private-api-sdk-java.version>4.0.404</private-api-sdk-java.version>
39+
<private-api-sdk-java.version>4.0.407</private-api-sdk-java.version>
4040
<api-sdk-java.version>6.4.11</api-sdk-java.version>
4141
<api-security-java.version>2.0.16</api-security-java.version>
4242

src/main/java/uk/gov/companieshouse/pscdataapi/transform/CompanyPscTransformer.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import uk.gov.companieshouse.api.psc.SensitiveData;
2828
import uk.gov.companieshouse.api.psc.SuperSecure;
2929
import uk.gov.companieshouse.api.psc.SuperSecureBeneficialOwner;
30+
import uk.gov.companieshouse.api.psc.SuperSecureIdentityVerificationDetails;
3031
import uk.gov.companieshouse.logging.Logger;
3132
import uk.gov.companieshouse.logging.LoggerFactory;
3233
import uk.gov.companieshouse.pscdataapi.data.IndividualPscRoles;
@@ -287,6 +288,29 @@ public SuperSecure transformPscDocToSuperSecure(PscDocument pscDocument) {
287288
}
288289
superSecure.setLinks(pscData.getLinks());
289290
}
291+
292+
PscIdentityVerificationDetails pscIdentityVerificationDetails = Optional.ofNullable(pscDocument)
293+
.map(PscDocument::getData)
294+
.map(PscData::getIdentityVerificationDetails)
295+
.orElse(null);
296+
297+
if (pscIdentityVerificationDetails != null && (pscIdentityVerificationDetails.getAppointmentVerificationEndOn() != null
298+
|| pscIdentityVerificationDetails.getAppointmentVerificationStartOn() != null)) {
299+
SuperSecureIdentityVerificationDetails superSecureIdentityVerificationDetails =
300+
Optional.ofNullable(superSecure.getIdentityVerificationDetails())
301+
.orElseGet(() -> {
302+
SuperSecureIdentityVerificationDetails s = new SuperSecureIdentityVerificationDetails();
303+
superSecure.setIdentityVerificationDetails(s);
304+
return s;
305+
});
306+
307+
superSecureIdentityVerificationDetails.setAppointmentVerificationStartOn(
308+
pscIdentityVerificationDetails.getAppointmentVerificationStartOn());
309+
310+
superSecureIdentityVerificationDetails.setAppointmentVerificationEndOn(
311+
pscIdentityVerificationDetails.getAppointmentVerificationEndOn());
312+
}
313+
290314
return superSecure;
291315
}
292316

src/test/java/uk/gov/companieshouse/pscdataapi/transform/CompanyPscTransformerTest.java

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,72 @@ void testPscDocumentShouldSetIdentityVerificationDetailsWhenPopulated() {
325325
Assertions.assertNotNull(result.getIdentityVerificationDetails());
326326
}
327327

328+
@Test
329+
void testIdvDatesPresentInSuperSecureWhenExistsInPscDocument() {
330+
// Arrange
331+
var pscDocument = TestHelper.buildPscDocument("individual");
332+
var pscData = new PscData();
333+
334+
PscIdentityVerificationDetails idv = new PscIdentityVerificationDetails();
335+
idv.setIdentityVerifiedOn(LocalDate.now());
336+
var startOnDate = LocalDate.of(2023, 1, 1);
337+
var endOnDate = LocalDate.of(2023, 1, 1);
338+
idv.setAppointmentVerificationStartOn(startOnDate);
339+
idv.setAppointmentVerificationEndOn(endOnDate);
340+
pscData.setIdentityVerificationDetails(idv);
341+
pscDocument.setData(pscData);
342+
// Act
343+
Individual result = pscTransformer.transformPscDocToIndividual(pscDocument, false);
344+
var resultStartOnDate = result.getIdentityVerificationDetails().getAppointmentVerificationStartOn();
345+
var resultEndOnDate = result.getIdentityVerificationDetails().getAppointmentVerificationEndOn();
346+
// Assert
347+
Assertions.assertNotNull(result.getIdentityVerificationDetails());
348+
Assertions.assertEquals(startOnDate, resultStartOnDate);
349+
Assertions.assertEquals(endOnDate, resultEndOnDate);
350+
}
351+
352+
@Test
353+
void testAppointmentVerificationStartOnInSuperSecureWhenExistsInPscDocument() {
354+
// Arrange
355+
var pscDocument = TestHelper.buildPscDocument("individual");
356+
var pscData = new PscData();
357+
358+
PscIdentityVerificationDetails idv = new PscIdentityVerificationDetails();
359+
idv.setIdentityVerifiedOn(LocalDate.now());
360+
var startOnDate = LocalDate.of(2023, 1, 1);
361+
idv.setAppointmentVerificationStartOn(startOnDate);
362+
pscData.setIdentityVerificationDetails(idv);
363+
pscDocument.setData(pscData);
364+
// Act
365+
Individual result = pscTransformer.transformPscDocToIndividual(pscDocument, false);
366+
var resultStartOnDate = result.getIdentityVerificationDetails().getAppointmentVerificationStartOn();
367+
// Assert
368+
Assertions.assertNotNull(result.getIdentityVerificationDetails());
369+
Assertions.assertEquals(startOnDate, resultStartOnDate);
370+
Assertions.assertNull(result.getIdentityVerificationDetails().getAppointmentVerificationEndOn());
371+
}
372+
373+
@Test
374+
void testAppointmentVerificationEndOnInSuperSecureWhenExistsInPscDocument() {
375+
// Arrange
376+
var pscDocument = TestHelper.buildPscDocument("individual");
377+
var pscData = new PscData();
378+
379+
PscIdentityVerificationDetails idv = new PscIdentityVerificationDetails();
380+
idv.setIdentityVerifiedOn(LocalDate.now());
381+
var endOnDate = LocalDate.of(2023, 1, 1);
382+
idv.setAppointmentVerificationEndOn(endOnDate);
383+
pscData.setIdentityVerificationDetails(idv);
384+
pscDocument.setData(pscData);
385+
// Act
386+
Individual result = pscTransformer.transformPscDocToIndividual(pscDocument, false);
387+
var resultEndOnDate = result.getIdentityVerificationDetails().getAppointmentVerificationEndOn();
388+
// Assert
389+
Assertions.assertNotNull(result.getIdentityVerificationDetails());
390+
Assertions.assertEquals(endOnDate, resultEndOnDate);
391+
Assertions.assertNull(result.getIdentityVerificationDetails().getAppointmentVerificationStartOn());
392+
}
393+
328394
@Test
329395
void testEmptyPscIndividualBeneficialOwnerTransform() {
330396
IndividualBeneficialOwner individualBeneficialOwner = pscTransformer

0 commit comments

Comments
 (0)