@Test public void verifyResult() { SignerBoundFieldsExample signerBoundFieldsExample = new SignerBoundFieldsExample(Props.get()); signerBoundFieldsExample.run(); DocumentPackage documentPackage = signerBoundFieldsExample.getRetrievedPackage(); for (Signature signature : documentPackage.getDocument(SignerBoundFieldsExample.DOCUMENT_NAME).getSignatures()) { for (Field field : signature.getFields()) { if ((int) (field.getX() + 0.1) == SignerBoundFieldsExample.SIGNATURE_DATE_POSITION_X && (int) (field.getY() + 0.1) == SignerBoundFieldsExample.SIGNATURE_DATE_POSITION_Y) { assertThat(field.getPage(), is(equalTo(SignerBoundFieldsExample.SIGNATURE_DATE_PAGE))); assertThat(field.getStyle(), is(equalTo(FieldStyle.BOUND_DATE))); } if ((int) (field.getX() + 0.1) == SignerBoundFieldsExample.SIGNER_COMPANY_POSITION_X && (int) (field.getY() + 0.1) == SignerBoundFieldsExample.SIGNER_COMPANY_POSITION_Y) { assertThat(field.getPage(), is(equalTo(SignerBoundFieldsExample.SIGNER_COMPANY_PAGE))); assertThat(field.getStyle(), is(equalTo(FieldStyle.BOUND_COMPANY))); } if ((int) (field.getX() + 0.1) == SignerBoundFieldsExample.SIGNER_NAME_POSITION_X && (int) (field.getY() + 0.1) == SignerBoundFieldsExample.SIGNER_NAME_POSITION_Y) { assertThat(field.getPage(), is(equalTo(SignerBoundFieldsExample.SIGNER_NAME_PAGE))); assertThat(field.getStyle(), is(equalTo(FieldStyle.BOUND_NAME))); } if ((int) (field.getX() + 0.1) == SignerBoundFieldsExample.SIGNER_TITLE_POSITION_X && (int) (field.getY() + 0.1) == SignerBoundFieldsExample.SIGNER_TITLE_POSITION_Y) { assertThat(field.getPage(), is(equalTo(SignerBoundFieldsExample.SIGNER_TITLE_PAGE))); assertThat(field.getStyle(), is(equalTo(FieldStyle.BOUND_TITLE))); } } } }
/** * Get the document's metadata from the package. * * @param documentPackage The DocumentPackage we want to get document from. * @param documentId Id of document to get. * @return the document's metadata */ public com.silanis.esl.sdk.Document getDocumentMetadata( DocumentPackage documentPackage, String documentId) { String path = template .urlFor(UrlTemplate.DOCUMENT_ID_PATH) .replace("{packageId}", documentPackage.getId().getId()) .replace("{documentId}", documentId) .build(); try { String response = client.get(path); Document apilDocument = Serialization.fromJson(response, Document.class); // Wipe out the members not related to the metadata apilDocument.setApprovals(new ArrayList<Approval>()); apilDocument.setFields(new ArrayList<Field>()); apilDocument.setPages(new ArrayList<com.silanis.esl.api.model.Page>()); return new DocumentConverter( apilDocument, new DocumentPackageConverter(documentPackage).toAPIPackage()) .toSDKDocument(); } catch (RequestException e) { throw new EslServerException("Could not get the document's metadata.", e); } catch (Exception e) { throw new EslException( "Could not get the document's metadata." + " Exception: " + e.getMessage()); } }
/** * Updates the documents signing order * * @param documentPackage */ public void orderDocuments(DocumentPackage documentPackage) { String path = template .urlFor(UrlTemplate.DOCUMENT_PATH) .replace("{packageId}", documentPackage.getId().getId()) .build(); List<Document> documents = new ArrayList<Document>(); for (com.silanis.esl.sdk.Document document : documentPackage.getDocuments()) { documents.add(new DocumentConverter(document).toAPIDocumentMetadata()); } try { String json = Serialization.toJson(documents); client.put(path, json); } catch (RequestException e) { throw new EslServerException("Could not order the documents.", e); } catch (Exception e) { throw new EslException("Could not order the documents." + " Exception: " + e.getMessage()); } }
/** * Updates the signer order in a package. * * @param documentPackage The id of the package to update signer order */ public void orderSigners(DocumentPackage documentPackage) { String path = template .urlFor(UrlTemplate.ROLE_PATH) .replace("{packageId}", documentPackage.getId().getId()) .build(); List<Role> roles = new ArrayList<Role>(); for (com.silanis.esl.sdk.Signer signer : documentPackage.getSigners()) { roles.add(new SignerConverter(signer).toAPIRole(signer.getId())); } try { String json = Serialization.toJson(roles); client.put(path, json); } catch (RequestException e) { throw new EslServerException("Could not order signers.", e); } catch (Exception e) { throw new EslException("Could not order signers." + " Exception: " + e.getMessage()); } }
/** * Updates the document's metadata from the package. * * @param documentPackage * @param document */ public void updateDocumentMetadata( DocumentPackage documentPackage, com.silanis.esl.sdk.Document document) { String path = template .urlFor(UrlTemplate.DOCUMENT_ID_PATH) .replace("{packageId}", documentPackage.getId().getId()) .replace("{documentId}", document.getId().toString()) .build(); Document internalDoc = new DocumentConverter(document).toAPIDocumentMetadata(); try { String json = Serialization.toJson(internalDoc); client.put(path, json); } catch (RequestException e) { throw new EslServerException("Could not update the document's metadata.", e); } catch (Exception e) { throw new EslException( "Could not update the document's metadata." + " Exception: " + e.getMessage()); } }
@Test public void verifyResult() { BasicPackageCreationExample basicPackageCreationExample = new BasicPackageCreationExample(Props.get()); basicPackageCreationExample.run(); DocumentPackage documentPackage = basicPackageCreationExample.getRetrievedPackage(); // Verify if the package is created correctly. assertFalse( "Package enableInPerson setting was not set correctly.", documentPackage.getSettings().getEnableInPerson()); assertThat( "Package description was not set correctly.", documentPackage.getDescription(), is("This is a package created using the e-SignLive SDK")); assertThat( "Package expiry date was not set correctly.", documentPackage.getExpiryDate(), is(now().plusMonths(1).toDate())); assertThat( "Package message was not set correctly.", documentPackage.getPackageMessage(), is("This message should be delivered to all signers")); // Verify if the sdk version is set correctly assertThat("Package attributes are null", documentPackage.getAttributes(), is(notNullValue())); assertThat( "Package attributes are empty", documentPackage.getAttributes().getContents(), is(notNullValue())); assertThat( "SDK version was not set", documentPackage.getAttributes().toMap().containsKey("sdk"), is(true)); assertThat( "SDK version was not set to the correct value", documentPackage.getAttributes().toMap().get("sdk").toString(), is(equalTo("Java v" + VersionUtil.getVersion()))); // Signer 1 Signer signer = documentPackage.getSigner(basicPackageCreationExample.email1); assertThat("Signer 1 ID was not set correctly.", signer.getId(), is("Client1")); assertThat("Signer 1 first name was not set correctly.", signer.getFirstName(), is("John")); assertThat("Signer 1 last name was not set correctly.", signer.getLastName(), is("Smith")); assertThat("Signer 1 title was not set correctly.", signer.getTitle(), is("Managing Director")); assertThat("Signer 1 company was not set correctly.", signer.getCompany(), is("Acme Inc.")); // Signer 2 signer = documentPackage.getSigner(basicPackageCreationExample.email2); assertThat("Signer 2 first name was not set correctly.", signer.getFirstName(), is("Patty")); assertThat("Signer 2 last name was not set correctly.", signer.getLastName(), is("Galant")); // Document 1 Document document = documentPackage.getDocument("First Document pdf"); Iterator<Signature> signatures = document.getSignatures().iterator(); Signature signature; Field field; if (signatures.hasNext()) { signature = signatures.next(); assertThat( "Signature's signer Email was not set correctly for First Document.", signature.getSignerEmail(), is(basicPackageCreationExample.email1)); assertThat( "Signature page was not set correctly for First Document.", signature.getPage(), is(0)); Iterator<Field> fields = signature.getFields().iterator(); if (fields.hasNext()) { field = fields.next(); assertThat( "Field style for signature was not set correctly in First Document.", field.getStyle(), is(FieldStyle.UNBOUND_CHECK_BOX)); assertThat( "Field Page number was not set correctly in First Document.", field.getPage(), is(0)); assertThat( "Field value of signature was not set correctly in First Document.", field.getValue(), is(FieldBuilder.RADIO_SELECTED)); } } // Document 2 document = documentPackage.getDocument("Second Document PDF"); signatures = document.getSignatures().iterator(); if (signatures.hasNext()) { signature = signatures.next(); assertThat( "Signature's signer Email was not set correctly for Second Document.", signature.getSignerEmail(), is("*****@*****.**")); assertThat( "Signature page was not set correctly for Second Document.", signature.getPage(), is(0)); Iterator<Field> fields = signature.getFields().iterator(); if (fields.hasNext()) { field = fields.next(); assertThat( "First radio button style for signature was not set correctly in Second Document.", field.getStyle(), is(FieldStyle.UNBOUND_RADIO_BUTTON)); assertThat( "First radio button Page number was not set correctly in Second Document.", field.getPage(), is(0)); assertThat( "First radio button value of signature was not set correctly in Second Document.", field.getValue(), is("")); assertThat( "First radio button group was not set correctly in Second Document.", field.getFieldValidator().getOptions().get(0), equalTo(basicPackageCreationExample.group1)); field = fields.next(); assertThat( "Second radio button style for signature was not set correctly in Second Document.", field.getStyle(), is(FieldStyle.UNBOUND_RADIO_BUTTON)); assertThat( "Second radio button Page number was not set correctly in Second Document.", field.getPage(), is(0)); assertThat( "Second radio button value of signature was not set correctly in Second Document.", field.getValue(), is(FieldBuilder.RADIO_SELECTED)); assertThat( "Second radio button group was not set correctly in Second Document.", field.getFieldValidator().getOptions().get(0), equalTo(basicPackageCreationExample.group1)); field = fields.next(); assertThat( "Third radio button style for signature was not set correctly in Second Document.", field.getStyle(), is(FieldStyle.UNBOUND_RADIO_BUTTON)); assertThat( "Third radio button Page number was not set correctly in Second Document.", field.getPage(), is(0)); assertThat( "Third radio button value of signature was not set correctly in Second Document.", field.getValue(), is(FieldBuilder.RADIO_SELECTED)); assertThat( "Third radio button group was not set correctly in Second Document.", field.getFieldValidator().getOptions().get(0), equalTo(basicPackageCreationExample.group2)); field = fields.next(); assertThat( "Third radio button style for signature was not set correctly in Second Document.", field.getStyle(), is(FieldStyle.UNBOUND_RADIO_BUTTON)); assertThat( "Third radio button Page number was not set correctly in Second Document.", field.getPage(), is(0)); assertThat( "Third radio button value of signature was not set correctly in Second Document.", field.getValue(), is("")); assertThat( "Third radio button group was not set correctly in Second Document.", field.getFieldValidator().getOptions().get(0), equalTo(basicPackageCreationExample.group2)); } } }