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

[camel] branch master updated: CAMEL-16400: split unit and integration tests for camel-google-mail (#5391)

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

orpiske 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 55bb5f1  CAMEL-16400: split unit and integration tests for camel-google-mail (#5391)
55bb5f1 is described below

commit 55bb5f1b557961168e67437b538fe43c6e79b7e7
Author: Otavio Rodolfo Piske <or...@users.noreply.github.com>
AuthorDate: Fri Apr 16 13:29:36 2021 +0200

    CAMEL-16400: split unit and integration tests for camel-google-mail (#5391)
---
 components/camel-google/camel-google-mail/pom.xml  | 38 +++++++---------------
 .../google/mail/AbstractGoogleMailTestSupport.java | 30 ++++++++++++-----
 .../GmailUsersIT.java}                             | 10 ++++--
 .../GmailUsersLabelsIT.java}                       | 10 ++++--
 .../GmailUsersMessagesConsumerIT.java}             | 10 ++++--
 .../GmailUsersMessagesIT.java}                     | 10 ++++--
 .../GmailUsersThreadsIT.java}                      | 10 ++++--
 7 files changed, 68 insertions(+), 50 deletions(-)

diff --git a/components/camel-google/camel-google-mail/pom.xml b/components/camel-google/camel-google-mail/pom.xml
index e04e867..884e4f4 100644
--- a/components/camel-google/camel-google-mail/pom.xml
+++ b/components/camel-google/camel-google-mail/pom.xml
@@ -223,6 +223,17 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-failsafe-plugin</artifactId>
+                <configuration>
+                    <childDelegation>false</childDelegation>
+                    <useFile>true</useFile>
+                    <forkCount>1</forkCount>
+                    <reuseForks>true</reuseForks>
+                    <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds>
+                </configuration>
+            </plugin>
         </plugins>
 
         <pluginManagement>
@@ -242,31 +253,4 @@
         </pluginManagement>
 
     </build>
-
-    <profiles>
-        <profile>
-            <id>google-mail-test</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <configuration>
-                            <childDelegation>false</childDelegation>
-                            <useFile>true</useFile>
-                            <forkCount>1</forkCount>
-                            <reuseForks>true</reuseForks>
-                            <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds>
-                            <excludes>
-                                <exclude>**/*XXXTest.java</exclude>
-                            </excludes>
-                            <includes>
-                                <include>**/*Test.java</include>
-                            </includes>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
 </project>
diff --git a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/AbstractGoogleMailTestSupport.java b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/AbstractGoogleMailTestSupport.java
index a2ba85f..ca9cd93 100644
--- a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/AbstractGoogleMailTestSupport.java
+++ b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/AbstractGoogleMailTestSupport.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.component.google.mail;
 
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
@@ -37,18 +36,33 @@ public class AbstractGoogleMailTestSupport extends CamelTestSupport {
     protected static final String CURRENT_USERID = "me";
     private static final String TEST_OPTIONS_PROPERTIES = "/test-options.properties";
 
-    @Override
-    protected CamelContext createCamelContext() throws Exception {
-
-        final CamelContext context = super.createCamelContext();
-
+    private static Properties loadProperties() {
         // read GoogleMail component configuration from TEST_OPTIONS_PROPERTIES
         final Properties properties = new Properties();
         try {
-            properties.load(getClass().getResourceAsStream(TEST_OPTIONS_PROPERTIES));
+            properties.load(AbstractGoogleMailTestSupport.class.getResourceAsStream(TEST_OPTIONS_PROPERTIES));
         } catch (Exception e) {
-            throw new IOException(String.format("%s could not be loaded: %s", TEST_OPTIONS_PROPERTIES, e.getMessage()), e);
+            throw new RuntimeException(String.format("%s could not be loaded: %s", TEST_OPTIONS_PROPERTIES, e.getMessage()), e);
         }
+        return properties;
+    }
+
+    // Used by JUnit to determine whether or not to run the integration tests
+    @SuppressWarnings("unused")
+    private static boolean hasCredentials() {
+        Properties properties = loadProperties();
+
+        return !properties.getProperty("clientId", "").isEmpty()
+                && !properties.getProperty("clientSecret", "").isEmpty()
+                && !properties.getProperty("accessToken", "").isEmpty();
+    }
+
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+
+        final CamelContext context = super.createCamelContext();
+
+        final Properties properties = loadProperties();
 
         Map<String, Object> options = new HashMap<>();
         for (Map.Entry<Object, Object> entry : properties.entrySet()) {
diff --git a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersIntegrationTest.java b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersIT.java
similarity index 83%
rename from components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersIntegrationTest.java
rename to components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersIT.java
index f0f3f46..85e6448 100644
--- a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersIntegrationTest.java
+++ b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersIT.java
@@ -14,12 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.google.mail;
+package org.apache.camel.component.google.mail.integration;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.google.mail.AbstractGoogleMailTestSupport;
 import org.apache.camel.component.google.mail.internal.GmailUsersApiMethod;
 import org.apache.camel.component.google.mail.internal.GoogleMailApiCollection;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIf;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -28,9 +30,11 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 /**
  * Test class for {@link com.google.api.services.gmail.Gmail$Users} APIs.
  */
-public class GmailUsersIntegrationTest extends AbstractGoogleMailTestSupport {
+@EnabledIf(value = "org.apache.camel.component.google.mail.AbstractGoogleMailTestSupport#hasCredentials",
+           disabledReason = "Google Mail credentials were not provided")
+public class GmailUsersIT extends AbstractGoogleMailTestSupport {
 
-    private static final Logger LOG = LoggerFactory.getLogger(GmailUsersIntegrationTest.class);
+    private static final Logger LOG = LoggerFactory.getLogger(GmailUsersIT.class);
     private static final String PATH_PREFIX
             = GoogleMailApiCollection.getCollection().getApiName(GmailUsersApiMethod.class).getName();
 
diff --git a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersLabelsIntegrationTest.java b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersLabelsIT.java
similarity index 91%
rename from components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersLabelsIntegrationTest.java
rename to components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersLabelsIT.java
index 64358c0..639950c 100644
--- a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersLabelsIntegrationTest.java
+++ b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersLabelsIT.java
@@ -14,16 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.google.mail;
+package org.apache.camel.component.google.mail.integration;
 
 import java.util.HashMap;
 import java.util.Map;
 
 import com.google.api.services.gmail.model.Label;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.google.mail.AbstractGoogleMailTestSupport;
 import org.apache.camel.component.google.mail.internal.GmailUsersLabelsApiMethod;
 import org.apache.camel.component.google.mail.internal.GoogleMailApiCollection;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIf;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -33,10 +35,12 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 /**
  * Test class for {@link com.google.api.services.gmail.Gmail$Users$Labels} APIs.
  */
-public class GmailUsersLabelsIntegrationTest extends AbstractGoogleMailTestSupport {
+@EnabledIf(value = "org.apache.camel.component.google.mail.AbstractGoogleMailTestSupport#hasCredentials",
+           disabledReason = "Google Mail credentials were not provided")
+public class GmailUsersLabelsIT extends AbstractGoogleMailTestSupport {
 
     private static final String CAMEL_TEST_LABEL = "CamelTestLabel";
-    private static final Logger LOG = LoggerFactory.getLogger(GmailUsersLabelsIntegrationTest.class);
+    private static final Logger LOG = LoggerFactory.getLogger(GmailUsersLabelsIT.class);
     private static final String PATH_PREFIX
             = GoogleMailApiCollection.getCollection().getApiName(GmailUsersLabelsApiMethod.class).getName();
 
diff --git a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersMessagesConsumerIntegrationTest.java b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersMessagesConsumerIT.java
similarity index 82%
rename from components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersMessagesConsumerIntegrationTest.java
rename to components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersMessagesConsumerIT.java
index c40b7be..424539d 100644
--- a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersMessagesConsumerIntegrationTest.java
+++ b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersMessagesConsumerIT.java
@@ -14,14 +14,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.google.mail;
+package org.apache.camel.component.google.mail.integration;
 
 import com.google.api.services.gmail.model.ListMessagesResponse;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.google.mail.AbstractGoogleMailTestSupport;
 import org.apache.camel.component.google.mail.internal.GmailUsersMessagesApiMethod;
 import org.apache.camel.component.google.mail.internal.GoogleMailApiCollection;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIf;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -30,11 +32,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 /**
  * Test class for {@link com.google.api.services.gmail.Gmail$Users$Messages} APIs.
  */
-public class GmailUsersMessagesConsumerIntegrationTest extends AbstractGoogleMailTestSupport {
+@EnabledIf(value = "org.apache.camel.component.google.mail.AbstractGoogleMailTestSupport#hasCredentials",
+           disabledReason = "Google Mail credentials were not provided")
+public class GmailUsersMessagesConsumerIT extends AbstractGoogleMailTestSupport {
 
     // userid of the currently authenticated user
     public static final String CURRENT_USERID = "me";
-    private static final Logger LOG = LoggerFactory.getLogger(GmailUsersMessagesConsumerIntegrationTest.class);
+    private static final Logger LOG = LoggerFactory.getLogger(GmailUsersMessagesConsumerIT.class);
     private static final String PATH_PREFIX
             = GoogleMailApiCollection.getCollection().getApiName(GmailUsersMessagesApiMethod.class).getName();
 
diff --git a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersMessagesIntegrationTest.java b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersMessagesIT.java
similarity index 95%
rename from components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersMessagesIntegrationTest.java
rename to components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersMessagesIT.java
index 6e2ded4..d30d7a4 100644
--- a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersMessagesIntegrationTest.java
+++ b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersMessagesIT.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.google.mail;
+package org.apache.camel.component.google.mail.integration;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -31,9 +31,11 @@ import com.google.api.client.repackaged.org.apache.commons.codec.binary.Base64;
 import com.google.api.services.gmail.model.ListMessagesResponse;
 import com.google.api.services.gmail.model.Message;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.google.mail.AbstractGoogleMailTestSupport;
 import org.apache.camel.component.google.mail.internal.GmailUsersMessagesApiMethod;
 import org.apache.camel.component.google.mail.internal.GoogleMailApiCollection;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIf;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -44,11 +46,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 /**
  * Test class for {@link com.google.api.services.gmail.Gmail$Users$Messages} APIs.
  */
-public class GmailUsersMessagesIntegrationTest extends AbstractGoogleMailTestSupport {
+@EnabledIf(value = "org.apache.camel.component.google.mail.AbstractGoogleMailTestSupport#hasCredentials",
+           disabledReason = "Google Mail credentials were not provided")
+public class GmailUsersMessagesIT extends AbstractGoogleMailTestSupport {
 
     // userid of the currently authenticated user
     public static final String CURRENT_USERID = "me";
-    private static final Logger LOG = LoggerFactory.getLogger(GmailUsersMessagesIntegrationTest.class);
+    private static final Logger LOG = LoggerFactory.getLogger(GmailUsersMessagesIT.class);
     private static final String PATH_PREFIX
             = GoogleMailApiCollection.getCollection().getApiName(GmailUsersMessagesApiMethod.class).getName();
 
diff --git a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersThreadsIntegrationTest.java b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersThreadsIT.java
similarity index 92%
rename from components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersThreadsIntegrationTest.java
rename to components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersThreadsIT.java
index a89e42d..648c09c 100644
--- a/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/GmailUsersThreadsIntegrationTest.java
+++ b/components/camel-google/camel-google-mail/src/test/java/org/apache/camel/component/google/mail/integration/GmailUsersThreadsIT.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.google.mail;
+package org.apache.camel.component.google.mail.integration;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -29,9 +29,11 @@ import javax.mail.internet.MimeMessage;
 import com.google.api.client.repackaged.org.apache.commons.codec.binary.Base64;
 import com.google.api.services.gmail.model.Message;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.google.mail.AbstractGoogleMailTestSupport;
 import org.apache.camel.component.google.mail.internal.GmailUsersThreadsApiMethod;
 import org.apache.camel.component.google.mail.internal.GoogleMailApiCollection;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIf;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -41,9 +43,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 /**
  * Test class for {@link com.google.api.services.gmail.Gmail$Users$Threads} APIs.
  */
-public class GmailUsersThreadsIntegrationTest extends AbstractGoogleMailTestSupport {
+@EnabledIf(value = "org.apache.camel.component.google.mail.AbstractGoogleMailTestSupport#hasCredentials",
+           disabledReason = "Google Mail credentials were not provided")
+public class GmailUsersThreadsIT extends AbstractGoogleMailTestSupport {
 
-    private static final Logger LOG = LoggerFactory.getLogger(GmailUsersThreadsIntegrationTest.class);
+    private static final Logger LOG = LoggerFactory.getLogger(GmailUsersThreadsIT.class);
     private static final String PATH_PREFIX
             = GoogleMailApiCollection.getCollection().getApiName(GmailUsersThreadsApiMethod.class).getName();