diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/messaging/IbmMqConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/messaging/IbmMqConnector.java
index 6bc3e0b..4045b70 100644
--- a/test-harness/src/main/java/cz/moneta/test/harness/connectors/messaging/IbmMqConnector.java
+++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/messaging/IbmMqConnector.java
@@ -57,8 +57,10 @@ public class IbmMqConnector implements Connector {
try {
if (keystorePath != null && !keystorePath.isBlank()) {
System.setProperty("javax.net.ssl.keyStore", keystorePath);
+ System.setProperty("javax.net.ssl.trustStore", keystorePath);
if (keystorePassword != null) {
System.setProperty("javax.net.ssl.keyStorePassword", keystorePassword);
+ System.setProperty("javax.net.ssl.trustStorePassword", keystorePassword);
}
}
diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/util/Template.java b/test-harness/src/main/java/cz/moneta/test/harness/support/util/Template.java
index 755f9bd..371ff7e 100644
--- a/test-harness/src/main/java/cz/moneta/test/harness/support/util/Template.java
+++ b/test-harness/src/main/java/cz/moneta/test/harness/support/util/Template.java
@@ -14,7 +14,7 @@ public class Template {
}
public Template(String templateString) {
- this.template = new ST(templateString);
+ this.template = new ST(templateString, '$', '$');
}
public Template set(String variable, String value) {
diff --git a/tests/.checkstyle b/tests/.checkstyle
new file mode 100644
index 0000000..5783bc0
--- /dev/null
+++ b/tests/.checkstyle
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/tests/pom.xml b/tests/pom.xml
index fc8fa99..186eafd 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -24,7 +24,12 @@
com.ibm.mq.allclient
${ibm.mq.version}
-
+
+
+ org.antlr
+ ST4
+ 4.3.4
+
javax.jms
javax.jms-api
diff --git a/tests/src/test/java/cz/moneta/test/system/messaging/SendMQMessage.java b/tests/src/test/java/cz/moneta/test/system/messaging/SendMQMessage.java
index c2e6263..cc84f32 100644
--- a/tests/src/test/java/cz/moneta/test/system/messaging/SendMQMessage.java
+++ b/tests/src/test/java/cz/moneta/test/system/messaging/SendMQMessage.java
@@ -1,24 +1,48 @@
package cz.moneta.test.system.messaging;
+import java.util.concurrent.TimeUnit;
+
import cz.moneta.test.dsl.Harness;
import cz.moneta.test.harness.annotations.TestCase;
import cz.moneta.test.harness.annotations.TestScenario;
+import cz.moneta.test.harness.support.util.Template;
@TestScenario(name = "Send MQ message")
public class SendMQMessage {
-
- @TestCase(name = "Send MQ message")
- public void sendMessage(Harness harness) {
- String message = "Hello, this is a test message!";
- String destination = "mainframe-utf8-queue";
-
- System.setProperty("javax.net.ssl.trustStore", "/home/kamma/tmp/mq-docker/ibmmq-client.p12");
- System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
-
- //System.setProperty("jdk.tls.client.protocols", "TLSv1.2");
- //System.setProperty("javax.net.ssl.trustStoreType", "PKCS12");
- harness.withMessaging().to(destination).asJson().withPayload(message).send();
- }
+ @TestCase(name = "Send JSON message")
+ public void sendJsonMessage(Harness harness) {
+
+ harness.withMessaging().to("payment-notifications").asJson()
+ .withPayload("{\"paymentId\": \"PAY-456\", \"result\": \"OK\"}").send();
+
+ harness.withMessaging().from("payment-notifications").asJson()
+ .receiveWhere(msg -> msg.extract("paymentId").equals("PAY-456")).withTimeout(5, TimeUnit.SECONDS)
+ .andAssertFieldValue("result", "OK");
+ }
+
+ @TestCase(name = "Send XML message")
+ public void sendXmlMessage(Harness harness) {
+
+ harness.withMessaging().to("mainframe-requests").asXml()
+ .withPayload("1234550000").send();
+
+ harness.withMessaging().to("mainframe-requests").asXml()
+ .withPayloadFromTemplate(Template.fromFilepath("messaging/mf-request.xml").set("accountId", "12345"))
+ .send();
+
+ harness.withMessaging().from("mainframe-requests").asXml()
+ .receiveWhere(msg -> msg.extract("/request/accountId").equals("12345"))
+ .withTimeout(5, TimeUnit.SECONDS).andAssertFieldValue("/request/balance", "50000");
+ }
+
+ @TestCase(name = "Send UTF8 message")
+ public void sendUtf8Message(Harness harness) {
+
+ harness.withMessaging().to("mainframe-utf8-queue").asUtf8().withPayload("DATA|12345|ÚČET|CZK").send();
+
+ harness.withMessaging().from("mainframe-utf8-queue").asUtf8()
+ .receiveWhere(msg -> msg.getBody().contains("12345")).withTimeout(5, TimeUnit.SECONDS);
+ }
}
diff --git a/tests/src/test/resources/envs/mq b/tests/src/test/resources/envs/mq
index c749710..d25b30e 100644
--- a/tests/src/test/resources/envs/mq
+++ b/tests/src/test/resources/envs/mq
@@ -12,30 +12,28 @@ messaging.kafka.value-serializer=avro
# Messaging - IBM MQ
messaging.ibmmq.host=localhost
messaging.ibmmq.port=1414
-messaging.ibmmq.channel=CLIENT.CHANNEL
+messaging.ibmmq.channel=DEV.APP.SVRCONN
messaging.ibmmq.queue-manager=QM1
messaging.ibmmq.ssl-cipher-suite=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
-messaging.ibmmq.keystore.path=/home/kamma/tmp/mq-docker/ibmmq-client.p12
+messaging.ibmmq.keystore.path=/home/kamma/aa/mq-docker/truststore.jks
messaging.ibmmq.keystore.password=changeit
messaging.ibmmq.username=app
messaging.ibmmq.password=app
-messaging.ibmmq.keystore.type=PKCS12
-messaging.ibmmq.tls.protocols=TLSv1.2
# Messaging destinations
messaging.destination.order-events.type=kafka
messaging.destination.order-events.topic=order-events-tst1
messaging.destination.payment-notifications.type=ibmmq
-messaging.destination.payment-notifications.queue=PAYMENT.NOTIFICATIONS
+messaging.destination.payment-notifications.queue=DEV.QUEUE.1
messaging.destination.payment-notifications.format=json
messaging.destination.mainframe-requests.type=ibmmq
-messaging.destination.mainframe-requests.queue=MF.REQUESTS
+messaging.destination.mainframe-requests.queue=XML.QUEUE.1
messaging.destination.mainframe-requests.format=xml
messaging.destination.mainframe-ebcdic-queue.type=ibmmq
messaging.destination.mainframe-ebcdic-queue.queue=MF.EBCDIC.QUEUE
messaging.destination.mainframe-ebcdic-queue.format=ebcdic_870
messaging.destination.mainframe-utf8-queue.type=ibmmq
-messaging.destination.mainframe-utf8-queue.queue=DEV.QUEUE.1
+messaging.destination.mainframe-utf8-queue.queue=UTF8.QUEUE.1
messaging.destination.mainframe-utf8-queue.format=utf8_1208
# Messaging vault paths
diff --git a/tests/src/test/resources/messaging/mf-request.xml b/tests/src/test/resources/messaging/mf-request.xml
new file mode 100644
index 0000000..680dd73
--- /dev/null
+++ b/tests/src/test/resources/messaging/mf-request.xml
@@ -0,0 +1,4 @@
+
+ $accountId$
+ 60000
+
\ No newline at end of file