You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2025/07/29 12:45:47 UTC
(camel-quarkus) branch main updated: Mail-microsoft-oath: clear messages after the test
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new 295c952974 Mail-microsoft-oath: clear messages after the test
295c952974 is described below
commit 295c9529744a56743a940fa8cd3ea91e68ba45bd
Author: JiriOndrusek <on...@gmail.com>
AuthorDate: Tue Jul 29 14:45:41 2025 +0200
Mail-microsoft-oath: clear messages after the test
---
.../oauth/it/MailMicrosoftOauthRoute.java | 3 +-
.../microsoft/oauth/it/MailMicrosoftOauthTest.java | 28 ++++++-----
.../microsoft/oauth/it/MailMicrosoftOauthUtil.java | 56 ++++++++++++++++------
3 files changed, 60 insertions(+), 27 deletions(-)
diff --git a/integration-tests/mail-microsoft-oauth/src/main/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthRoute.java b/integration-tests/mail-microsoft-oauth/src/main/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthRoute.java
index 4c257f3dca..322aad3180 100644
--- a/integration-tests/mail-microsoft-oauth/src/main/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthRoute.java
+++ b/integration-tests/mail-microsoft-oauth/src/main/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthRoute.java
@@ -38,8 +38,7 @@ public class MailMicrosoftOauthRoute extends RouteBuilder {
+ "&mail.imaps.auth.mechanisms=XOAUTH2"
+ "&debugMode=true"
+ "&delete=true"
- //search pattern works on contains and not start with
- + "&searchTerm.subject=" + TEST_SUBJECT.substring(1))
+ + "&searchTerm.subject=" + TEST_SUBJECT)
.id("receiverRoute")
.autoStartup(false)
.to("mock:receivedMessages");
diff --git a/integration-tests/mail-microsoft-oauth/src/test/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthTest.java b/integration-tests/mail-microsoft-oauth/src/test/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthTest.java
index fc2b4cb482..bdd73bbd21 100644
--- a/integration-tests/mail-microsoft-oauth/src/test/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthTest.java
+++ b/integration-tests/mail-microsoft-oauth/src/test/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthTest.java
@@ -49,19 +49,25 @@ class MailMicrosoftOauthTest {
//send an email
MailMicrosoftOauthUtil.sendMessage(subject, content);
- //start route
- startRoute("receiverRoute");
+ try {
+ //start route
+ startRoute("receiverRoute");
- //receive
- Awaitility.await().pollInterval(2, TimeUnit.SECONDS).atMost(2, TimeUnit.MINUTES).until(() -> {
//receive
- return (List<Map<String, String>>) JsonbBuilder.create()
- .fromJson(RestAssured.get("/mail-microsoft-oauth/getReceived/")
- .then()
- .statusCode(200)
- .extract().body().asString(), List.class);
- }, list -> list.size() == 1
- && list.get(0).get("content").contains(content));
+ Awaitility.await().pollInterval(2, TimeUnit.SECONDS).atMost(2, TimeUnit.MINUTES).until(() -> {
+ //receive
+ return (List<Map<String, String>>) JsonbBuilder.create()
+ .fromJson(RestAssured.get("/mail-microsoft-oauth/getReceived/")
+ .then()
+ .statusCode(200)
+ .extract().body().asString(), List.class);
+ }, list -> list.size() == 1
+ && list.get(0).get("content").contains(content));
+
+ } finally {
+ //delete email in case that the route failed
+ MailMicrosoftOauthUtil.deleteMessage(subject);
+ }
}
private void startRoute(String name) {
diff --git a/integration-tests/mail-microsoft-oauth/src/test/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthUtil.java b/integration-tests/mail-microsoft-oauth/src/test/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthUtil.java
index 4ad0f2d9c3..6e47b1f38c 100644
--- a/integration-tests/mail-microsoft-oauth/src/test/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthUtil.java
+++ b/integration-tests/mail-microsoft-oauth/src/test/java/org/apache/camel/quarkus/component/mail/microsoft/oauth/it/MailMicrosoftOauthUtil.java
@@ -24,8 +24,10 @@ import com.microsoft.graph.models.BodyType;
import com.microsoft.graph.models.EmailAddress;
import com.microsoft.graph.models.ItemBody;
import com.microsoft.graph.models.Message;
+import com.microsoft.graph.models.MessageCollectionResponse;
import com.microsoft.graph.models.Recipient;
import com.microsoft.graph.serviceclient.GraphServiceClient;
+import com.microsoft.graph.users.item.UserItemRequestBuilder;
import com.microsoft.graph.users.item.sendmail.SendMailPostRequestBody;
import org.eclipse.microprofile.config.Config;
import org.eclipse.microprofile.config.ConfigProvider;
@@ -35,18 +37,7 @@ public class MailMicrosoftOauthUtil {
public static void sendMessage(String subject, String content) {
Config config = ConfigProvider.getConfig();
- String email = config.getValue(MailMicrosoftOauthResource.USERNAME_PROPERTY, String.class);
- String clientId = config.getValue(MailMicrosoftOauthResource.CLIENT_ID_PROPERTY, String.class);
- String clientSecret = config.getValue(MailMicrosoftOauthResource.CLIENT_SECRET_PROPERTY, String.class);
- String tenantId = config.getValue(MailMicrosoftOauthResource.TENANT_ID_PROPERTY, String.class);
-
- ClientSecretCredential graph = new ClientSecretCredentialBuilder()
- .clientId(clientId)
- .clientSecret(clientSecret)
- .tenantId(tenantId)
- .build();
-
- GraphServiceClient graphClient = new GraphServiceClient(graph);
+ UserItemRequestBuilder client = client(config);
SendMailPostRequestBody sendMailPostRequestBody = new SendMailPostRequestBody();
Message message = new Message();
@@ -58,13 +49,50 @@ public class MailMicrosoftOauthUtil {
LinkedList<Recipient> toRecipients = new LinkedList<Recipient>();
Recipient recipient = new Recipient();
EmailAddress emailAddress = new EmailAddress();
- emailAddress.setAddress(email);
+ emailAddress.setAddress(config.getValue(MailMicrosoftOauthResource.USERNAME_PROPERTY, String.class));
recipient.setEmailAddress(emailAddress);
toRecipients.add(recipient);
message.setToRecipients(toRecipients);
sendMailPostRequestBody.setMessage(message);
sendMailPostRequestBody.setSaveToSentItems(false);
- graphClient.users().byUserId(email).sendMail().post(sendMailPostRequestBody);
+ client.sendMail().post(sendMailPostRequestBody);
+ }
+
+ public static void deleteMessage(String subject) {
+
+ UserItemRequestBuilder client = client(ConfigProvider.getConfig());
+
+ try {
+ MessageCollectionResponse messages = client.messages()
+ .get(getRequestConfiguration -> getRequestConfiguration.queryParameters.filter = "subject eq '%s'"
+ .formatted(subject));
+
+ //if there is only 1 message. delete it
+ if (messages.getValue().size() == 1) {
+ client.messages().byMessageId(messages.getValue().get(0).getId()).delete();
+ }
+
+ } catch (Exception e) {
+ //ignore any error
+ }
+ }
+
+ private static UserItemRequestBuilder client(Config config) {
+
+ String email = config.getValue(MailMicrosoftOauthResource.USERNAME_PROPERTY, String.class);
+ String clientId = config.getValue(MailMicrosoftOauthResource.CLIENT_ID_PROPERTY, String.class);
+ String clientSecret = config.getValue(MailMicrosoftOauthResource.CLIENT_SECRET_PROPERTY, String.class);
+ String tenantId = config.getValue(MailMicrosoftOauthResource.TENANT_ID_PROPERTY, String.class);
+
+ ClientSecretCredential graph = new ClientSecretCredentialBuilder()
+ .clientId(clientId)
+ .clientSecret(clientSecret)
+ .tenantId(tenantId)
+ .build();
+
+ GraphServiceClient graphClient = new GraphServiceClient(graph);
+
+ return graphClient.users().byUserId(email);
}
}