You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2019/06/27 20:15:20 UTC

[plc4x] 04/04: - Added a test to test the generated code for serializing and parsing - Added tests for serializing and parsing parsed instances of the generated model to JSON and XML with Jackson

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

cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit a81e1f7c65074f8ace8866c4877cce9298354b02
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Jun 27 22:15:09 2019 +0200

    - Added a test to test the generated code for serializing and parsing
    - Added tests for serializing and parsing parsed instances of the generated model to JSON and XML with Jackson
---
 sandbox/test-java-knxnetip-driver/pom.xml          | 14 +++++++
 .../org/apache/plc4x/java/knxnetip/IOTest.java}    | 46 +++++++++++++++++-----
 .../src/test/java/BenchmarkGeneratedS7.java        |  1 -
 3 files changed, 51 insertions(+), 10 deletions(-)

diff --git a/sandbox/test-java-knxnetip-driver/pom.xml b/sandbox/test-java-knxnetip-driver/pom.xml
index 8d9e15e..bc23e19 100644
--- a/sandbox/test-java-knxnetip-driver/pom.xml
+++ b/sandbox/test-java-knxnetip-driver/pom.xml
@@ -60,12 +60,26 @@
       <artifactId>plc4j-utils-driver-base-java</artifactId>
       <version>0.5.0-SNAPSHOT</version>
     </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
+    </dependency>
 
     <dependency>
       <groupId>commons-codec</groupId>
       <artifactId>commons-codec</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.dataformat</groupId>
+      <artifactId>jackson-dataformat-xml</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <scope>test</scope>
+    </dependency>
 
     <dependency>
       <groupId>org.apache.plc4x</groupId>
diff --git a/sandbox/test-java-s7-driver/src/test/java/BenchmarkGeneratedS7.java b/sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/IOTest.java
similarity index 58%
copy from sandbox/test-java-s7-driver/src/test/java/BenchmarkGeneratedS7.java
copy to sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/IOTest.java
index f1d95ff..5653814 100644
--- a/sandbox/test-java-s7-driver/src/test/java/BenchmarkGeneratedS7.java
+++ b/sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/IOTest.java
@@ -17,27 +17,55 @@
  under the License.
  */
 
+package org.apache.plc4x.java.knxnetip;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
 import org.apache.commons.codec.binary.Hex;
-import org.apache.plc4x.java.s7.TPKTPacket;
-import org.apache.plc4x.java.s7.io.TPKTPacketIO;
+import org.apache.plc4x.java.knxnetip.io.KNXNetIPMessageIO;
 import org.apache.plc4x.java.utils.ReadBuffer;
 import org.apache.plc4x.java.utils.WriteBuffer;
+import org.junit.jupiter.api.Test;
 
 import java.util.Arrays;
 
-public class BenchmarkGeneratedS7 {
+public class IOTest {
+
+    @Test
+    public void testXml() throws Exception {
+        byte[] rData = Hex.decodeHex("0610020500180801c0a82a46c4090801c0a82a46c40a0203");
+        ObjectMapper mapper = new XmlMapper().enableDefaultTyping();
+        ReadBuffer rBuf = new ReadBuffer(rData);
+        KNXNetIPMessage packet = KNXNetIPMessageIO.parse(rBuf);
+        String xml = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(packet);
+        System.out.println(xml);
+        KNXNetIPMessage pack2 = mapper.readValue(xml, KNXNetIPMessage.class);
+        System.out.println(pack2);
+    }
+
+    @Test
+    public void testJson() throws Exception {
+        byte[] rData = Hex.decodeHex("0610020500180801c0a82a46c4090801c0a82a46c40a0203");
+        ObjectMapper mapper = new ObjectMapper().enableDefaultTyping();
+        ReadBuffer rBuf = new ReadBuffer(rData);
+        KNXNetIPMessage packet = KNXNetIPMessageIO.parse(rBuf);
+        String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(packet);
+        System.out.println(json);
+        KNXNetIPMessage pack2 = mapper.readValue(json, KNXNetIPMessage.class);
+        System.out.println(pack2);
+    }
 
-    public static void main(String[] args) throws Exception {
-                                    //        00
-        byte[] rData = Hex.decodeHex("0300006702f080320100000001005600000407120a10060001032b84000160120a10020001032b840001a0120a10010001032b840001a9120a10050001032b84000150120a10020001032b84000198120a10040001032b84000140120a10020001032b84000190");
+    @Test
+    public void testParser() throws Exception {
+        byte[] rData = Hex.decodeHex("0610020500180801c0a82a46c4090801c0a82a46c40a0203");
         long start = System.currentTimeMillis();
         int numRunsParse = 2000000;
 
         // Benchmark the parsing code
-        TPKTPacket packet = null;
+        KNXNetIPMessage packet = null;
         for(int i = 0; i < numRunsParse; i++) {
             ReadBuffer rBuf = new ReadBuffer(rData);
-            packet = TPKTPacketIO.parse(rBuf);
+            packet = KNXNetIPMessageIO.parse(rBuf);
         }
         long endParsing = System.currentTimeMillis();
 
@@ -49,7 +77,7 @@ public class BenchmarkGeneratedS7 {
         byte[] oData = null;
         for(int i = 0; i < numRunsSerialize; i++) {
             WriteBuffer wBuf = new WriteBuffer(packet.getLengthInBytes());
-            TPKTPacketIO.serialize(wBuf, packet);
+            KNXNetIPMessageIO.serialize(wBuf, packet);
             oData = wBuf.getData();
         }
         long endSerializing = System.currentTimeMillis();
diff --git a/sandbox/test-java-s7-driver/src/test/java/BenchmarkGeneratedS7.java b/sandbox/test-java-s7-driver/src/test/java/BenchmarkGeneratedS7.java
index f1d95ff..24fd194 100644
--- a/sandbox/test-java-s7-driver/src/test/java/BenchmarkGeneratedS7.java
+++ b/sandbox/test-java-s7-driver/src/test/java/BenchmarkGeneratedS7.java
@@ -28,7 +28,6 @@ import java.util.Arrays;
 public class BenchmarkGeneratedS7 {
 
     public static void main(String[] args) throws Exception {
-                                    //        00
         byte[] rData = Hex.decodeHex("0300006702f080320100000001005600000407120a10060001032b84000160120a10020001032b840001a0120a10010001032b840001a9120a10050001032b84000150120a10020001032b84000198120a10040001032b84000140120a10020001032b84000190");
         long start = System.currentTimeMillis();
         int numRunsParse = 2000000;