diff --git a/media/sample_signing_document.pdf b/media/sample_signing_document.pdf new file mode 100644 index 00000000..aceafc9e Binary files /dev/null and b/media/sample_signing_document.pdf differ diff --git a/src/test/java/com/onfido/integration/SigningDocumentTest.java b/src/test/java/com/onfido/integration/SigningDocumentTest.java new file mode 100644 index 00000000..cf3d6cdf --- /dev/null +++ b/src/test/java/com/onfido/integration/SigningDocumentTest.java @@ -0,0 +1,84 @@ +package com.onfido.integration; + +import com.onfido.ApiException; +import com.onfido.FileTransfer; +import com.onfido.model.Applicant; +import com.onfido.model.SigningDocument; +import java.util.List; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class SigningDocumentTest extends TestBase { + private Applicant applicant; + private SigningDocument signingDocument; + + @BeforeEach + public void setupTest() throws Exception { + applicant = createApplicant(); + signingDocument = uploadSigningDocument(applicant, "sample_signing_document.pdf"); + } + + @Test + public void uploadSigningDocumentTest() { + Assertions.assertEquals("sample_signing_document.pdf", signingDocument.getFileName()); + Assertions.assertEquals("pdf", signingDocument.getFileType()); + Assertions.assertEquals(applicant.getId(), signingDocument.getApplicantId()); + Assertions.assertNotNull(signingDocument.getHref()); + Assertions.assertNotNull(signingDocument.getDownloadHref()); + Assertions.assertTrue(signingDocument.getFileSize() > 0); + Assertions.assertNotNull(signingDocument.toJson()); + } + + @Test + public void downloadSigningDocumentTest() throws Exception { + FileTransfer download = onfido.downloadSigningDocument(signingDocument.getId()); + + Assertions.assertEquals("application/pdf", download.getContentType()); + Assertions.assertNotNull(download.getFilename()); + Assertions.assertEquals("%PDF", new String(download.getByteArray(), 0, 4)); + Assertions.assertTrue(download.getByteArray().length > 0); + } + + @Test + public void findSigningDocumentTest() throws Exception { + SigningDocument found = onfido.findSigningDocument(signingDocument.getId()); + + Assertions.assertEquals(signingDocument.getId(), found.getId()); + Assertions.assertEquals("sample_signing_document.pdf", found.getFileName()); + Assertions.assertEquals("pdf", found.getFileType()); + Assertions.assertEquals(applicant.getId(), found.getApplicantId()); + Assertions.assertNotNull(found.getDownloadHref()); + Assertions.assertNotNull(found.toJson()); + } + + @Test + public void listSigningDocumentsTest() throws Exception { + List documents = + onfido.listSigningDocuments(applicant.getId()).getSigningDocuments(); + + Assertions.assertNotNull(documents); + Assertions.assertTrue( + documents.stream().anyMatch(d -> d.getId().equals(signingDocument.getId()))); + } + + @Test + public void uploadSigningDocumentNullParamsTest() { + try { + onfido.uploadSigningDocument(null, null); + Assertions.fail(); + } catch (ApiException ex) { + Assertions.assertEquals(0, ex.getCode()); + } + } + + @Test + public void downloadSigningDocumentErrorTest() { + try { + onfido.downloadSigningDocument(nonExistingId); + Assertions.fail(); + } catch (ApiException ex) { + Assertions.assertEquals(404, ex.getCode()); + } + } +} diff --git a/src/test/java/com/onfido/integration/TestBase.java b/src/test/java/com/onfido/integration/TestBase.java index c9468705..8a478055 100644 --- a/src/test/java/com/onfido/integration/TestBase.java +++ b/src/test/java/com/onfido/integration/TestBase.java @@ -94,6 +94,12 @@ protected Document uploadDocument( locationBuilder); } + protected SigningDocument uploadSigningDocument(Applicant applicant, String filename) + throws ApiException { + return onfido.uploadSigningDocument( + applicant.getId(), new FileTransfer(new File("media/" + filename))); + } + protected LivePhoto uploadLivePhoto(Applicant applicant, String filename) throws Exception { return onfido.uploadLivePhoto( applicant.getId(), new FileTransfer(new File("media/" + filename)), true);