This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 399ac64  [CAMEL-11257] Enhance unit tests and fixed Javadoc
399ac64 is described below

commit 399ac647ab05b7d608427d3ccb3e0bbf94e06310
Author: William Collins <punkhor...@gmail.com>
AuthorDate: Mon May 14 15:15:21 2018 -0400

    [CAMEL-11257] Enhance unit tests and fixed Javadoc
---
 .../camel/component/as2/api/AS2ClientManager.java  | 18 ++++++++--
 .../camel/component/as2/api/entity/MimeEntity.java | 12 +++----
 .../as2/AS2ClientManagerIntegrationTest.java       | 38 +++++++++++++++++++---
 3 files changed, 55 insertions(+), 13 deletions(-)

diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
index 72f5807..f13f282 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
@@ -159,9 +159,21 @@ public class AS2ClientManager {
      *
      * @param ediMessage
      *            - EDI message to transport
-     * @param httpContext
-     *            - the subject sent in the interchange request.
-     * @throws HttpException
+     * @param requestUri
+     *            - resource location to deliver message
+     * @param subject - message subject
+     * @param from - RFC2822 address of sender
+     * @param as2From - AS2 name of sender
+     * @param as2To - AS2 name of recipient
+     * @param as2MessageStructure - the structure of AS2 to send; see {@link 
AS2MessageStructure}
+     * @param ediMessageContentType - the content typw of EDI message
+     * @param ediMessageTransferEncoding - the transfer encoding used to 
transport EDI message
+     * @param signingCertificateChain - the chain of certificates used to sign 
the message or <code>null</code> if sending EDI message unsigned
+     * @param signingPrivateKey - the private key used to sign EDI message
+     * @param dispositionNotificationTo - an RFC2822 address to request a 
receipt or <code>null</code> if no receipt requested
+     * @param signedReceiptMicAlgorithms - the senders list of signing 
algorithms for signing receipt, in preferred order,  or <code>null</code> if 
requesting an unsigned receipt.
+     * @return {@link HttpCoreContext} containing request and response used to 
send EDI message
+     * @throws HttpException when things go wrong.
      */
     public HttpCoreContext send(String ediMessage,
                                 String requestUri,
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/MimeEntity.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/MimeEntity.java
index 56b8a4a..5eab3d1 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/MimeEntity.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/MimeEntity.java
@@ -129,7 +129,7 @@ public abstract class MimeEntity extends AbstractHttpEntity 
{
     /**
      * Obtains the Content-Transfer-Encoding header.
      * The default implementation returns the value of the
-     * {@link #contentEncoding contentTransferEncoding} attribute.
+     * {@link #contentEncoding contentEncoding} attribute.
      *
      * @return  the Content-Transfer-Encoding header, or {@code null}
      */
@@ -140,12 +140,12 @@ public abstract class MimeEntity extends 
AbstractHttpEntity {
     /**
      * Specifies the Content-Transfer-Encoding header.
      * The default implementation sets the value of the
-     * {@link #contentTranferEncoding contentTransferEncoding} attribute.
+     * {@link #contentTransferEncoding contentTransferEncoding} attribute.
      *
      * @param contentTransferEncoding   the new Content-Transfer-Encoding 
header, or
      *                          {@code null} to unset
      */
-    public void setContentTranserEncoding(final Header 
contentTransferEncoding) {
+    public void setContentTransferEncoding(final Header 
contentTransferEncoding) {
         this.contentTransferEncoding = contentTransferEncoding;
         if (contentTransferEncoding != null) {
             addHeader(contentTransferEncoding);
@@ -157,9 +157,9 @@ public abstract class MimeEntity extends AbstractHttpEntity 
{
     /**
      * Specifies the Content-Transfer-Encoding header, as a string.
      * The default implementation calls
-     * {@link #setContentTransferEncoding(Header) setContentEncoding(Header)}.
+     * {@link #setContentTransferEncoding(Header) 
setContentTransferEncoding(Header)}.
      *
-     * @param ceString     the new Content-Transfer-Encoding header, or
+     * @param contentTranserEncoding - the new Content-Transfer-Encoding 
header, or
      *                     {@code null} to unset
      */
     public void setContentTransferEncoding(final String 
contentTranserEncoding) {
@@ -167,7 +167,7 @@ public abstract class MimeEntity extends AbstractHttpEntity 
{
         if (contentTranserEncoding != null) {
             h = new BasicHeader(AS2Header.CONTENT_TRANSFER_ENCODING, 
contentTranserEncoding);
         }
-        setContentTranserEncoding(h);
+        setContentTransferEncoding(h);
     }
 
 
diff --git 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIntegrationTest.java
 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIntegrationTest.java
index f862ada..3c1459b 100644
--- 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIntegrationTest.java
+++ 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIntegrationTest.java
@@ -38,12 +38,17 @@ import org.apache.camel.component.as2.api.AS2MimeType;
 import org.apache.camel.component.as2.api.AS2ServerConnection;
 import org.apache.camel.component.as2.api.AS2ServerManager;
 import org.apache.camel.component.as2.api.AS2SignedDataGenerator;
+import org.apache.camel.component.as2.api.entity.AS2DispositionType;
+import 
org.apache.camel.component.as2.api.entity.AS2MessageDispositionNotificationEntity;
 import org.apache.camel.component.as2.api.entity.ApplicationEDIEntity;
 import 
org.apache.camel.component.as2.api.entity.ApplicationPkcs7SignatureEntity;
+import org.apache.camel.component.as2.api.entity.DispositionMode;
 import 
org.apache.camel.component.as2.api.entity.DispositionNotificationMultipartReportEntity;
 import org.apache.camel.component.as2.api.entity.MimeEntity;
 import org.apache.camel.component.as2.api.entity.MultipartSignedEntity;
 import org.apache.camel.component.as2.api.util.HttpMessageUtils;
+import org.apache.camel.component.as2.api.util.MicUtils;
+import org.apache.camel.component.as2.api.util.MicUtils.ReceivedContentMic;
 import org.apache.camel.component.as2.internal.AS2ApiCollection;
 import org.apache.camel.component.as2.internal.AS2ClientManagerApiMethod;
 import org.apache.http.HttpEntity;
@@ -80,6 +85,8 @@ public class AS2ClientManagerIntegrationTest extends 
AbstractAS2TestSupport {
     private static final Logger LOG = 
LoggerFactory.getLogger(AS2ClientManagerIntegrationTest.class);
     private static final String PATH_PREFIX = 
AS2ApiCollection.getCollection().getApiName(AS2ClientManagerApiMethod.class).getName();
 
+    private static final String ORIGIN_SERVER_NAME = 
"AS2ClientManagerIntegrationTest Server";
+    private static final String AS2_VERSION = "1.1";
     private static final String REQUEST_URI = "/";
     private static final String SUBJECT = "Test Case";
     private static final String AS2_NAME = "878051556";
@@ -116,7 +123,8 @@ public class AS2ClientManagerIntegrationTest extends 
AbstractAS2TestSupport {
             + "UNT+23+00000000000117'\n"
             + "UNZ+1+00000000000778'\n";
 
-    private static final String EXPECTED_AS2_VERSION = "1.1";
+    private static final String EDI_MESSAGE_CONTENT_TRANSFER_ENCODING = "7bit";
+    private static final String EXPECTED_AS2_VERSION = AS2_VERSION;
     private static final String EXPECTED_MDN_SUBJECT = MDN_SUBJECT_PREFIX + 
SUBJECT;
     private static final String[] SIGNED_RECEIPT_MIC_ALGORITHMS = new String[] 
{"sha1", "md5"};
 
@@ -191,7 +199,7 @@ public class AS2ClientManagerIntegrationTest extends 
AbstractAS2TestSupport {
         // parameter type is org.apache.http.entity.ContentType
         headers.put("CamelAS2.ediMessageContentType", 
ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII));
         // parameter type is String
-        headers.put("CamelAS2.ediMessageTransferEncoding", null);
+        headers.put("CamelAS2.ediMessageTransferEncoding", 
EDI_MESSAGE_CONTENT_TRANSFER_ENCODING);
         // parameter type is java.security.cert.Certificate[]
         headers.put("CamelAS2.signingCertificateChain", null);
         // parameter type is java.security.PrivateKey
@@ -236,6 +244,15 @@ public class AS2ClientManagerIntegrationTest extends 
AbstractAS2TestSupport {
         assertEquals("Unexpected content type in second body part of report",
                 
ContentType.create(AS2MimeType.MESSAGE_DISPOSITION_NOTIFICATION, 
AS2Charset.US_ASCII).toString(),
                 secondPart.getContentTypeValue());
+        
+        assertTrue("", secondPart instanceof 
AS2MessageDispositionNotificationEntity);
+        AS2MessageDispositionNotificationEntity 
messageDispositionNotificationEntity = 
(AS2MessageDispositionNotificationEntity) secondPart;
+        assertEquals("Unexpected value for reporting UA", ORIGIN_SERVER_NAME, 
messageDispositionNotificationEntity.getReportingUA());
+        assertEquals("Unexpected value for final recipient", AS2_NAME, 
messageDispositionNotificationEntity.getFinalRecipient());
+        assertEquals("Unexpected value for original message ID", 
HttpMessageUtils.getHeaderValue(request, AS2Header.MESSAGE_ID), 
messageDispositionNotificationEntity.getOriginalMessageId());
+        assertEquals("Unexpected value for disposition mode", 
DispositionMode.AUTOMATIC_ACTION_MDN_SENT_AUTOMATICALLY, 
messageDispositionNotificationEntity.getDispositionMode());
+        assertEquals("Unexpected value for disposition type", 
AS2DispositionType.PROCESSED, 
messageDispositionNotificationEntity.getDispositionType());
+        
     }
 
     @Test
@@ -256,7 +273,7 @@ public class AS2ClientManagerIntegrationTest extends 
AbstractAS2TestSupport {
         // parameter type is org.apache.http.entity.ContentType
         headers.put("CamelAS2.ediMessageContentType", 
ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII));
         // parameter type is String
-        headers.put("CamelAS2.ediMessageTransferEncoding", null);
+        headers.put("CamelAS2.ediMessageTransferEncoding", 
EDI_MESSAGE_CONTENT_TRANSFER_ENCODING);
         // parameter type is java.security.cert.Certificate[]
         headers.put("CamelAS2.signingCertificateChain", certList.toArray(new 
Certificate[0]));
         // parameter type is java.security.PrivateKey
@@ -300,6 +317,7 @@ public class AS2ClientManagerIntegrationTest extends 
AbstractAS2TestSupport {
         assertNotNull("Response entity", responseEntity);
         assertTrue("Unexpected response entity type", responseEntity 
instanceof MultipartSignedEntity);
         MultipartSignedEntity responseSignedEntity = (MultipartSignedEntity) 
responseEntity;
+        assertTrue("Signature for response entity is invalid", 
responseSignedEntity.isValid());
         MimeEntity responseSignedDataEntity = 
responseSignedEntity.getSignedDataEntity();
         assertTrue("Signed entity wrong type", responseSignedDataEntity 
instanceof DispositionNotificationMultipartReportEntity);
         DispositionNotificationMultipartReportEntity reportEntity = 
(DispositionNotificationMultipartReportEntity)responseSignedDataEntity;
@@ -312,6 +330,18 @@ public class AS2ClientManagerIntegrationTest extends 
AbstractAS2TestSupport {
                 secondPart.getContentTypeValue());
         ApplicationPkcs7SignatureEntity signatureEntity = 
responseSignedEntity.getSignatureEntity();
         assertNotNull("Signature Entity", signatureEntity);
+        
+        assertTrue("", secondPart instanceof 
AS2MessageDispositionNotificationEntity);
+        AS2MessageDispositionNotificationEntity 
messageDispositionNotificationEntity = 
(AS2MessageDispositionNotificationEntity) secondPart;
+        assertEquals("Unexpected value for reporting UA", ORIGIN_SERVER_NAME, 
messageDispositionNotificationEntity.getReportingUA());
+        assertEquals("Unexpected value for final recipient", AS2_NAME, 
messageDispositionNotificationEntity.getFinalRecipient());
+        assertEquals("Unexpected value for original message ID", 
HttpMessageUtils.getHeaderValue(request, AS2Header.MESSAGE_ID), 
messageDispositionNotificationEntity.getOriginalMessageId());
+        assertEquals("Unexpected value for disposition mode", 
DispositionMode.AUTOMATIC_ACTION_MDN_SENT_AUTOMATICALLY, 
messageDispositionNotificationEntity.getDispositionMode());
+        assertEquals("Unexpected value for disposition type", 
AS2DispositionType.PROCESSED, 
messageDispositionNotificationEntity.getDispositionType());
+        
+        ReceivedContentMic receivedContentMic = 
messageDispositionNotificationEntity.getReceivedContentMic();
+        ReceivedContentMic computedContentMic = 
MicUtils.createReceivedContentMic((HttpEntityEnclosingRequest)request);
+        assertEquals("Received content MIC does not match computed", 
computedContentMic.getEncodedMessageDigest(), 
receivedContentMic.getEncodedMessageDigest());
     }
 
     @BeforeClass
@@ -380,7 +410,7 @@ public class AS2ClientManagerIntegrationTest extends 
AbstractAS2TestSupport {
     }
 
     private static void receiveTestMessages() throws IOException {
-        serverConnection = new AS2ServerConnection("1.1", 
"AS2ClientManagerIntegrationTest Server",
+        serverConnection = new AS2ServerConnection(AS2_VERSION, 
ORIGIN_SERVER_NAME,
                 "server.example.com", 8888, serverCertList.toArray(new 
Certificate[0]), serverSigningKP.getPrivate());
         serverConnection.listen("/", new RequestHandler());
     }

-- 
To stop receiving notification emails like this one, please contact
davscl...@apache.org.

Reply via email to