diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/SandboxCheckReports.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/SandboxCheckReports.java index e1a1aff2..4c1942b6 100644 --- a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/SandboxCheckReports.java +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/SandboxCheckReports.java @@ -1,5 +1,6 @@ package com.yoti.api.client.sandbox.docs.request; +import static com.yoti.api.client.docs.DocScanConstants.FACE_COMPARISON; import static com.yoti.api.client.docs.DocScanConstants.ID_DOCUMENT_AUTHENTICITY; import static com.yoti.api.client.docs.DocScanConstants.ID_DOCUMENT_COMPARISON; import static com.yoti.api.client.docs.DocScanConstants.ID_DOCUMENT_FACE_MATCH; @@ -14,6 +15,7 @@ import com.yoti.api.client.sandbox.docs.request.check.SandboxDocumentAuthenticityCheck; import com.yoti.api.client.sandbox.docs.request.check.SandboxDocumentTextDataCheck; import com.yoti.api.client.sandbox.docs.request.check.SandboxDocumentFaceMatchCheck; +import com.yoti.api.client.sandbox.docs.request.check.SandboxFaceComparisonCheck; import com.yoti.api.client.sandbox.docs.request.check.SandboxIdDocumentComparisonCheck; import com.yoti.api.client.sandbox.docs.request.check.SandboxLivenessCheck; import com.yoti.api.client.sandbox.docs.request.check.SandboxSupplementaryDocumentTextDataCheck; @@ -46,6 +48,9 @@ public class SandboxCheckReports { @JsonProperty(THIRD_PARTY_IDENTITY) private final SandboxThirdPartyIdentityCheck thirdPartyIdentityCheck; + @JsonProperty(FACE_COMPARISON) + private final SandboxFaceComparisonCheck faceComparisonCheck; + @JsonProperty("async_report_delay") private final Integer asyncReportDelay; @@ -56,6 +61,7 @@ public class SandboxCheckReports { List idDocumentComparisonChecks, List supplementaryDocumentTextDataChecks, SandboxThirdPartyIdentityCheck thirdPartyIdentityCheck, + SandboxFaceComparisonCheck faceComparisonCheck, Integer asyncReportsDelay) { this.documentTextDataChecks = documentTextDataChecks; this.documentAuthenticityChecks = documentAuthenticityChecks; @@ -64,6 +70,7 @@ public class SandboxCheckReports { this.idDocumentComparisonChecks = idDocumentComparisonChecks; this.supplementaryDocumentTextDataChecks = supplementaryDocumentTextDataChecks; this.thirdPartyIdentityCheck = thirdPartyIdentityCheck; + this.faceComparisonCheck = faceComparisonCheck; this.asyncReportDelay = asyncReportsDelay; } @@ -97,6 +104,10 @@ public SandboxThirdPartyIdentityCheck getThirdPartyIdentityCheck() { return thirdPartyIdentityCheck; } + public SandboxFaceComparisonCheck getFaceComparisonCheck() { + return faceComparisonCheck; + } + public Integer getAsyncReportDelay() { return asyncReportDelay; } @@ -120,6 +131,8 @@ public static class Builder { private SandboxThirdPartyIdentityCheck thirdPartyIdentityCheck; + private SandboxFaceComparisonCheck faceComparisonCheck; + private Integer asyncReportDelay; private Builder() {} @@ -159,6 +172,11 @@ public Builder withThirdPartyIdentityCheck(SandboxThirdPartyIdentityCheck thirdP return this; } + public Builder withFaceComparisonCheck(SandboxFaceComparisonCheck faceComparisonCheck) { + this.faceComparisonCheck = faceComparisonCheck; + return this; + } + public Builder withAsyncReportDelay(int asyncReportDelay) { this.asyncReportDelay = asyncReportDelay; return this; @@ -166,7 +184,7 @@ public Builder withAsyncReportDelay(int asyncReportDelay) { public SandboxCheckReports build() { return new SandboxCheckReports(textDataCheck, documentAuthenticityCheck, livenessCheck, documentFaceMatchCheck, idDocumentComparisonCheck, - supplementaryDocumentTextDataCheck, thirdPartyIdentityCheck, asyncReportDelay); + supplementaryDocumentTextDataCheck, thirdPartyIdentityCheck, faceComparisonCheck, asyncReportDelay); } } diff --git a/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxFaceComparisonCheck.java b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxFaceComparisonCheck.java new file mode 100644 index 00000000..6bba0d8d --- /dev/null +++ b/yoti-sdk-sandbox/src/main/java/com/yoti/api/client/sandbox/docs/request/check/SandboxFaceComparisonCheck.java @@ -0,0 +1,40 @@ +package com.yoti.api.client.sandbox.docs.request.check; + +import static com.yoti.api.client.spi.remote.util.Validation.notNull; + +import com.yoti.api.client.sandbox.docs.request.check.report.SandboxCheckReport; + +public class SandboxFaceComparisonCheck extends SandboxCheck { + + SandboxFaceComparisonCheck(SandboxCheckResult result) { + super(result); + } + + public static Builder builder() { + return new Builder(); + } + + /** + * Builder for {@link SandboxFaceComparisonCheck} + */ + public static class Builder extends SandboxCheck.Builder { + + private Builder() {} + + @Override + protected Builder self() { + return this; + } + + @Override + public SandboxFaceComparisonCheck build() { + notNull(recommendation, "recommendation"); + + SandboxCheckReport report = new SandboxCheckReport(recommendation, breakdown); + SandboxCheckResult result = new SandboxCheckResult(report, reportTemplate); + + return new SandboxFaceComparisonCheck(result); + } + + } +} diff --git a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/SandboxCheckReportsTest.java b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/SandboxCheckReportsTest.java index e19fa572..81bead54 100644 --- a/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/SandboxCheckReportsTest.java +++ b/yoti-sdk-sandbox/src/test/java/com/yoti/api/client/sandbox/docs/request/SandboxCheckReportsTest.java @@ -6,6 +6,7 @@ import com.yoti.api.client.sandbox.docs.request.check.SandboxDocumentAuthenticityCheck; import com.yoti.api.client.sandbox.docs.request.check.SandboxDocumentFaceMatchCheck; +import com.yoti.api.client.sandbox.docs.request.check.SandboxFaceComparisonCheck; import com.yoti.api.client.sandbox.docs.request.check.SandboxIdDocumentComparisonCheck; import com.yoti.api.client.sandbox.docs.request.check.SandboxLivenessCheck; import com.yoti.api.client.sandbox.docs.request.check.SandboxDocumentTextDataCheck; @@ -27,6 +28,7 @@ public class SandboxCheckReportsTest { @Mock SandboxIdDocumentComparisonCheck idDocumentComparisonCheckMock; @Mock SandboxSupplementaryDocumentTextDataCheck supplementaryDocumentTextDataCheckMock; @Mock SandboxThirdPartyIdentityCheck thirdPartyIdentityCheckMock; + @Mock SandboxFaceComparisonCheck faceComparisonCheckMock; @Test public void builder_shouldAllowDocumentAuthenticityChecks() { @@ -97,6 +99,15 @@ public void builder_shouldAllowThirdPartyIdentityChecks() { assertThat(result.getThirdPartyIdentityCheck(), is(thirdPartyIdentityCheckMock)); } + @Test + public void builder_shouldAllowFaceComparisonCheck() { + SandboxCheckReports result = SandboxCheckReports.builder() + .withFaceComparisonCheck(faceComparisonCheckMock) + .build(); + + assertThat(result.getFaceComparisonCheck(), is(faceComparisonCheckMock)); + } + @Test public void builder_shouldAllowOverridingOfAsyncReportDelay() { SandboxCheckReports result = SandboxCheckReports.builder()