You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/07/05 14:59:27 UTC

[plc4x] branch develop updated: test(c-bus): add more test cases

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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 13a18608c test(c-bus): add more test cases
13a18608c is described below

commit 13a18608c7efd27af94d54e07cac7b62c88c79d5
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Jul 5 16:59:18 2022 +0200

    test(c-bus): add more test cases
---
 .../apache/plc4x/java/cbus/RandomPackagesTest.java | 94 ++++++++++++++++++++++
 1 file changed, 94 insertions(+)

diff --git a/plc4j/drivers/c-bus/src/test/java/org/apache/plc4x/java/cbus/RandomPackagesTest.java b/plc4j/drivers/c-bus/src/test/java/org/apache/plc4x/java/cbus/RandomPackagesTest.java
index 66d184faf..b2a12d369 100644
--- a/plc4j/drivers/c-bus/src/test/java/org/apache/plc4x/java/cbus/RandomPackagesTest.java
+++ b/plc4j/drivers/c-bus/src/test/java/org/apache/plc4x/java/cbus/RandomPackagesTest.java
@@ -70,6 +70,87 @@ public class RandomPackagesTest {
 
         }
 
+        // 4
+        @Nested
+        class SerialInterface {
+
+            // 4.2.3
+            @Test
+            void reset() throws Exception {
+                byte[] bytes = "~\r".getBytes(StandardCharsets.UTF_8);
+                ReadBufferByteBased readBufferByteBased = new ReadBufferByteBased(bytes);
+                CBusMessage msg = CBusMessage.staticParse(readBufferByteBased, false, true, bytes.length);
+                assertThat(msg)
+                    .isNotNull();
+                System.out.println(msg);
+            }
+
+            @Disabled("not implemented yet")
+            // 4.2.4
+            @Test
+            void cancel() throws Exception {
+                byte[] bytes = "AB0123?9876\r".getBytes(StandardCharsets.UTF_8);
+                ReadBufferByteBased readBufferByteBased = new ReadBufferByteBased(bytes);
+                CBusMessage msg = CBusMessage.staticParse(readBufferByteBased, false, true, bytes.length);
+                assertThat(msg)
+                    .isNotNull();
+                System.out.println(msg);
+            }
+
+            // 4.2.5
+            @Test
+            void smartConnectShortcut() throws Exception {
+                byte[] bytes = "\r|\r".getBytes(StandardCharsets.UTF_8);
+                ReadBufferByteBased readBufferByteBased = new ReadBufferByteBased(bytes);
+                CBusMessage msg = CBusMessage.staticParse(readBufferByteBased, false, true, bytes.length);
+                assertThat(msg)
+                    .isNotNull();
+                System.out.println(msg);
+            }
+
+            @Disabled("not implemented yet")
+            // 4.2.4
+            @Test
+            void confirmation() throws Exception {
+                // If you follow the spec a confirmation can occur at any place... seems strange
+                byte[] bytes = "AB0123n9876\r".getBytes(StandardCharsets.UTF_8);
+                ReadBufferByteBased readBufferByteBased = new ReadBufferByteBased(bytes);
+                CBusMessage msg = CBusMessage.staticParse(readBufferByteBased, false, true, bytes.length);
+                assertThat(msg)
+                    .isNotNull();
+                System.out.println(msg);
+            }
+
+            // 4.2.7
+            @Test
+            void directCommandAccess1() throws Exception {
+                byte[] bytes = "@2102\r".getBytes(StandardCharsets.UTF_8);
+                ReadBufferByteBased readBufferByteBased = new ReadBufferByteBased(bytes);
+                CBusMessage msg = CBusMessage.staticParse(readBufferByteBased, false, true, bytes.length);
+                assertThat(msg)
+                    .isNotNull();
+                System.out.println(msg);
+                CALData calData = ((RequestDirectCommandAccess) ((CBusMessageToServer) msg).getRequest()).getCalData();
+                System.out.println(calData);
+            }
+
+            @Disabled("not implemented yet")
+            // 4.2.7
+            @Test
+            void directCommandAccess2() throws Exception {
+                // TODO: this should be the same as the @above but that is not yet implemented
+                byte[] bytes = "~2102\r".getBytes(StandardCharsets.UTF_8);
+                ReadBufferByteBased readBufferByteBased = new ReadBufferByteBased(bytes);
+                CBusMessage msg = CBusMessage.staticParse(readBufferByteBased, false, true, bytes.length);
+                assertThat(msg)
+                    .isNotNull();
+                System.out.println(msg);
+                CALData calData = ((RequestDirectCommandAccess) ((CBusMessageToServer) msg).getRequest()).getCalData();
+                System.out.println(calData);
+            }
+
+        }
+
 
         // 4.2.9.1
         @Nested
@@ -567,5 +648,18 @@ public class RandomPackagesTest {
             CALReplyReply calReplyReply = (CALReplyReply) normalReply.getReply();
             System.out.println(calReplyReply.getCalReply());
         }
+
+        @Test
+        void someOtherResponse() throws Exception {
+            byte[] bytes = "\\0538000100g\r".getBytes(StandardCharsets.UTF_8);
+            ReadBufferByteBased readBufferByteBased = new ReadBufferByteBased(bytes);
+            CBusMessage msg = CBusMessage.staticParse(readBufferByteBased, false, true, bytes.length);
+            assertThat(msg)
+                .isNotNull();
+            System.out.println(msg);
+            CBusMessageToServer messageToServer = (CBusMessageToServer) msg;
+            RequestCommand requestCommand = (RequestCommand) messageToServer.getRequest();
+            System.out.println(requestCommand.getCbusCommand());
+        }
     }
 }