public void execute() { externalDocumentName = "External Document " + new SimpleDateFormat("HH:mm:ss").format(new Date()); DocumentPackage superDuperPackage = newPackageNamed("ExternalPackage " + new SimpleDateFormat("HH:mm:ss").format(new Date())) .describedAs("This is a package created using the e-SignLive SDK") .expiresAt(now().plusMonths(1).toDate()) .withSigner( newSignerWithEmail(email1) .withCustomId("Client1") .withFirstName("John") .withLastName("Smith") .withTitle("Managing Director") .withCompany("Acme Inc.")) .withSigner(newSignerWithEmail(email2).withFirstName("Patty").withLastName("Galant")) .withDocument( newDocumentWithName(externalDocumentName) .fromStream(documentInputStream2, DocumentType.PDF) .withSignature(signatureFor(email2).onPage(0).atPosition(100, 200))) .build(); packageId = eslClient.createPackage(superDuperPackage); eslClient.sendPackage(packageId); DocumentPackage packageWithExternalContent = newPackageNamed( "AddExternalDocumentExample " + new SimpleDateFormat("HH:mm:ss").format(new Date())) .expiresAt(now().plusMonths(1).toDate()) .withSigner( newSignerWithEmail(email1) .withCustomId("Client1") .withFirstName("John") .withLastName("Smith") .withTitle("Managing Director") .withCompany("Acme Inc.")) .withSigner(newSignerWithEmail(email2).withFirstName("Patty").withLastName("Galant")) .withDocument( newDocumentWithName("First Document") .fromStream(documentInputStream1, DocumentType.PDF) .withSignature(signatureFor(email1).onPage(0).atPosition(100, 100))) .build(); packageId = eslClient.createPackage(packageWithExternalContent); List<Document> historyDocuments = eslClient.getPackageService().getDocuments(); List<Document> externalDocuments = new ArrayList<Document>(); for (Document document : historyDocuments) { if (document.getName().equals(externalDocumentName)) { externalDocuments.add(document); } } eslClient .getPackageService() .addDocumentWithExternalContent(packageId.getId(), externalDocuments); eslClient.sendPackage(packageId); retrievedPackage = eslClient.getPackage(packageId); }
/** * 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)); } } }