You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/04/15 11:17:22 UTC

[camel] branch master updated: camel-braintree: test fixes and improvements (#5376)

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 bb21e48  camel-braintree: test fixes and improvements (#5376)
bb21e48 is described below

commit bb21e482f7ee77700b5bb1450574125170d94aa4
Author: Otavio Rodolfo Piske <or...@users.noreply.github.com>
AuthorDate: Thu Apr 15 13:16:52 2021 +0200

    camel-braintree: test fixes and improvements (#5376)
    
    - do not reuse amount values otherwise the test fails due to duplicates
    - log result messages for easier debug
    - skip certain tests when environment variables are not provided
    - added documentation
---
 components/camel-braintree/README.md               | 27 ++++++++++++++++++++++
 .../braintree/DisputeGatewayIntegrationTest.java   | 22 +++++++++++++++++-
 .../braintree/ReportGatewayIntegrationTest.java    |  7 ++++++
 .../TransactionGatewayIntegrationTest.java         | 25 +++++++++++++-------
 4 files changed, 72 insertions(+), 9 deletions(-)

diff --git a/components/camel-braintree/README.md b/components/camel-braintree/README.md
new file mode 100644
index 0000000..605ed44
--- /dev/null
+++ b/components/camel-braintree/README.md
@@ -0,0 +1,27 @@
+# Camel Braintree Component
+
+# Running the integration tests
+
+This component contains integration tests that must be executed against the Braintree sandbox. In 
+order to do so, you need to setup an account as explained in the [testing guide](https://developers.braintreepayments.com/reference/general/testing/java).
+
+Then, login to the Sandbox instance, collect the merchantId, publicKey and privateKey and edit the
+test-options.properties file in the test resources directory. Also, uncomment the environment option. 
+
+```
+environment = SANDBOX
+merchantId  = merchant ID taken from sandbox ui
+publicKey   = key from sandbox ui 
+privateKey  = private key from sandbox ui
+```
+
+Then, you can use the following commands to run the tests:
+
+```
+CAMEL_BRAINTREE_REPORT_DATE=$(date '+%Y-%m-%d') CAMEL_BRAINTREE_MERCHANT_ACCOUNT_ID="merchant ID taken from sandbox" ui mvn -Pbraintree-test clean verify
+```
+
+It's also possible to run a smaller set of tests by running them without the environment variables:
+```
+mvn -Pbraintree-test clean verify
+```
diff --git a/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/DisputeGatewayIntegrationTest.java b/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/DisputeGatewayIntegrationTest.java
index 69942f7..12946b1 100644
--- a/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/DisputeGatewayIntegrationTest.java
+++ b/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/DisputeGatewayIntegrationTest.java
@@ -73,6 +73,8 @@ public class DisputeGatewayIntegrationTest extends AbstractBraintreeTestSupport
         final Result result = requestBody(
                 "direct://ACCEPT",
                 createdDispute.getId());
+
+        LOG.info("Result message: {}", result.getMessage());
         assertNotNull(result, "accept result");
         assertTrue(result.isSuccess(), "accept result success");
 
@@ -98,6 +100,7 @@ public class DisputeGatewayIntegrationTest extends AbstractBraintreeTestSupport
                 null,
                 headers);
 
+        LOG.info("Result message: {}", result.getMessage());
         assertNotNull(result, "addFileEvidence result");
         assertTrue(result.isSuccess(), "addFileEvidence result success");
     }
@@ -118,6 +121,7 @@ public class DisputeGatewayIntegrationTest extends AbstractBraintreeTestSupport
                 null,
                 headers);
 
+        LOG.info("Result message: {}", result.getMessage());
         assertNotNull(result, "addFileEvidence result");
         assertTrue(result.isSuccess(), "addFileEvidence result success");
     }
@@ -137,6 +141,7 @@ public class DisputeGatewayIntegrationTest extends AbstractBraintreeTestSupport
                 null,
                 headers);
 
+        LOG.info("Result message: {}", result.getMessage());
         assertNotNull(result, "addTextEvidence result");
         assertTrue(result.isSuccess(), "addTextEvidence result success");
 
@@ -161,6 +166,7 @@ public class DisputeGatewayIntegrationTest extends AbstractBraintreeTestSupport
                 null,
                 headers);
 
+        LOG.info("Result message: {}", result.getMessage());
         assertNotNull(result, "addTextEvidence result");
         assertTrue(result.isSuccess(), "addTextEvidence result success");
 
@@ -176,12 +182,15 @@ public class DisputeGatewayIntegrationTest extends AbstractBraintreeTestSupport
         final Result result = requestBody(
                 "direct://FINALIZE",
                 createdDispute.getId());
+
+        LOG.info("Result message: {}", result.getMessage());
         assertNotNull(result, "finalize result");
         assertTrue(result.isSuccess(), "finalize result success");
 
         final Dispute finalizedDispute = requestBody(
                 "direct://FIND",
                 createdDispute.getId());
+
         assertNotNull(finalizedDispute, "finalized dispute");
         assertEquals(Dispute.Status.DISPUTED, finalizedDispute.getStatus());
     }
@@ -214,6 +223,7 @@ public class DisputeGatewayIntegrationTest extends AbstractBraintreeTestSupport
                 null,
                 addTextEvidenceHeaders);
 
+        LOG.info("Result message: {}", addTextEvidenceResult.getMessage());
         assertNotNull(addTextEvidenceResult, "addTextEvidence result");
         assertTrue(addTextEvidenceResult.isSuccess(), "addTextEvidence result success");
 
@@ -229,6 +239,7 @@ public class DisputeGatewayIntegrationTest extends AbstractBraintreeTestSupport
                 null,
                 removeTextEvidenceHeaders);
 
+        LOG.info("Result message: {}", removeTextEvidenceResult.getMessage());
         assertNotNull(removeTextEvidenceResult, "removeEvidence result");
         assertTrue(removeTextEvidenceResult.isSuccess(), "removeEvidence result success");
     }
@@ -301,11 +312,19 @@ public class DisputeGatewayIntegrationTest extends AbstractBraintreeTestSupport
         };
     }
 
+    private static int randomWithRange(int min, int max) {
+        int range = (max - min) + 1;
+
+        return (int) (Math.random() * range) + min;
+    }
+
     private Dispute createDispute() {
-        return createDispute(100.00);
+        double initialAmount = randomWithRange(100, 200);
+        return createDispute(initialAmount);
     }
 
     private Dispute createDispute(double amount) {
+        LOG.info("Creating dispute with amount {}", amount);
         final Result<Transaction> transactionResult = requestBody(
                 "direct://SALE",
                 new TransactionRequest()
@@ -319,6 +338,7 @@ public class DisputeGatewayIntegrationTest extends AbstractBraintreeTestSupport
                         .done(),
                 Result.class);
 
+        LOG.info("Result message: {}", transactionResult.getMessage());
         assertTrue(transactionResult.isSuccess());
         List<Dispute> disputes = transactionResult.getTarget().getDisputes();
         assertListSize(disputes, 1);
diff --git a/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/ReportGatewayIntegrationTest.java b/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/ReportGatewayIntegrationTest.java
index 6b0c119..ea6a845 100644
--- a/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/ReportGatewayIntegrationTest.java
+++ b/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/ReportGatewayIntegrationTest.java
@@ -25,6 +25,8 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.braintree.internal.BraintreeApiCollection;
 import org.apache.camel.component.braintree.internal.ReportGatewayApiMethod;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
+import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariables;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -40,6 +42,10 @@ public class ReportGatewayIntegrationTest extends AbstractBraintreeTestSupport {
     private static final String PATH_PREFIX
             = BraintreeApiCollection.getCollection().getApiName(ReportGatewayApiMethod.class).getName();
 
+    @EnabledIfEnvironmentVariables({
+            @EnabledIfEnvironmentVariable(named = "CAMEL_BRAINTREE_MERCHANT_ACCOUNT_ID", matches = ".*"),
+            @EnabledIfEnvironmentVariable(named = "CAMEL_BRAINTREE_REPORT_DATE", matches = ".*")
+    })
     @Test
     public void testTransactionLevelFees() throws Exception {
         String merchantAccountId = System.getenv("CAMEL_BRAINTREE_MERCHANT_ACCOUNT_ID");
@@ -57,6 +63,7 @@ public class ReportGatewayIntegrationTest extends AbstractBraintreeTestSupport {
                 "direct://TRANSACTIONLEVELFEES",
                 request);
 
+        LOG.info("Result message: {}", result.getMessage());
         assertNotNull(result, "transactionLevelFees result");
         assertTrue(result.isSuccess(), "transactionLevelFees success");
         TransactionLevelFeeReport report = result.getTarget();
diff --git a/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java b/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java
index 1eeba2c..474664c 100644
--- a/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java
+++ b/components/camel-braintree/src/test/java/org/apache/camel/component/braintree/TransactionGatewayIntegrationTest.java
@@ -92,6 +92,7 @@ public class TransactionGatewayIntegrationTest extends AbstractBraintreeTestSupp
                         .done(),
                 Result.class);
 
+        LOG.info("Result message: {}", result.getMessage());
         assertNotNull(result, "sale result");
         assertTrue(result.isSuccess());
 
@@ -106,13 +107,14 @@ public class TransactionGatewayIntegrationTest extends AbstractBraintreeTestSupp
         final Result<Transaction> createResult = requestBody(
                 "direct://SALE",
                 new TransactionRequest()
-                        .amount(new BigDecimal("100.00"))
+                        .amount(new BigDecimal("100.01"))
                         .paymentMethodNonce("fake-valid-nonce")
                         .options()
                         .submitForSettlement(false)
                         .done(),
                 Result.class);
 
+        LOG.info("Result message: {}", createResult.getMessage());
         assertNotNull(createResult, "sale result");
         assertTrue(createResult.isSuccess());
 
@@ -148,13 +150,14 @@ public class TransactionGatewayIntegrationTest extends AbstractBraintreeTestSupp
         final Result<Transaction> createResult = requestBody(
                 "direct://SALE",
                 new TransactionRequest()
-                        .amount(new BigDecimal("100.00"))
+                        .amount(new BigDecimal("100.02"))
                         .paymentMethodNonce("fake-valid-nonce")
                         .options()
                         .submitForSettlement(false)
                         .done(),
                 Result.class);
 
+        LOG.info("Result message: {}", createResult.getMessage());
         assertNotNull(createResult, "sale result");
         assertTrue(createResult.isSuccess());
 
@@ -175,13 +178,14 @@ public class TransactionGatewayIntegrationTest extends AbstractBraintreeTestSupp
         final Result<Transaction> createResult = requestBody(
                 "direct://SALE",
                 new TransactionRequest()
-                        .amount(new BigDecimal("100.00"))
+                        .amount(new BigDecimal("100.03"))
                         .paymentMethodNonce("fake-valid-nonce")
                         .options()
                         .submitForSettlement(false)
                         .done(),
                 Result.class);
 
+        LOG.info("Result message: {}", createResult.getMessage());
         assertNotNull(createResult, "sale result");
         assertTrue(createResult.isSuccess());
 
@@ -204,13 +208,14 @@ public class TransactionGatewayIntegrationTest extends AbstractBraintreeTestSupp
         final Result<Transaction> createResult = requestBody(
                 "direct://SALE",
                 new TransactionRequest()
-                        .amount(new BigDecimal("100.00"))
+                        .amount(new BigDecimal("100.04"))
                         .paymentMethodNonce("fake-valid-nonce")
                         .options()
                         .submitForSettlement(false)
                         .done(),
                 Result.class);
 
+        LOG.info("Result message: {}", createResult.getMessage());
         assertNotNull(createResult, "sale result");
         assertTrue(createResult.isSuccess());
 
@@ -237,13 +242,14 @@ public class TransactionGatewayIntegrationTest extends AbstractBraintreeTestSupp
         final Result<Transaction> createResult = requestBody(
                 "direct://SALE",
                 new TransactionRequest()
-                        .amount(new BigDecimal("100.00"))
+                        .amount(new BigDecimal("100.05"))
                         .paymentMethodNonce("fake-valid-nonce")
                         .options()
                         .submitForSettlement(false)
                         .done(),
                 Result.class);
 
+        LOG.info("Result message: {}", createResult.getMessage());
         assertNotNull(createResult, "sale result");
         assertTrue(createResult.isSuccess());
 
@@ -271,13 +277,14 @@ public class TransactionGatewayIntegrationTest extends AbstractBraintreeTestSupp
         final Result<Transaction> createResult = requestBody(
                 "direct://SALE",
                 new TransactionRequest()
-                        .amount(new BigDecimal("100.00"))
+                        .amount(new BigDecimal("100.06"))
                         .paymentMethodNonce("fake-valid-nonce")
                         .options()
                         .submitForSettlement(true)
                         .done(),
                 Result.class);
 
+        LOG.info("Result message: {}", createResult.getMessage());
         assertNotNull(createResult, "sale result");
         assertTrue(createResult.isSuccess());
 
@@ -304,13 +311,14 @@ public class TransactionGatewayIntegrationTest extends AbstractBraintreeTestSupp
         final Result<Transaction> createResult = requestBody(
                 "direct://SALE",
                 new TransactionRequest()
-                        .amount(new BigDecimal("100.00"))
+                        .amount(new BigDecimal("100.07"))
                         .paymentMethodNonce("fake-valid-nonce")
                         .options()
                         .submitForSettlement(true)
                         .done(),
                 Result.class);
 
+        LOG.info("Result message: {}", createResult.getMessage());
         assertNotNull(createResult, "sale result");
         assertTrue(createResult.isSuccess());
 
@@ -341,13 +349,14 @@ public class TransactionGatewayIntegrationTest extends AbstractBraintreeTestSupp
         final Result<Transaction> createResult = requestBody(
                 "direct://SALE",
                 new TransactionRequest()
-                        .amount(new BigDecimal("100.00"))
+                        .amount(new BigDecimal("100.08"))
                         .paymentMethodNonce("fake-valid-nonce")
                         .options()
                         .submitForSettlement(true)
                         .done(),
                 Result.class);
 
+        LOG.info("Result message: {}", createResult.getMessage());
         assertNotNull(createResult, "sale result");
         assertTrue(createResult.isSuccess());