You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by jm...@apache.org on 2017/12/28 00:47:39 UTC

[incubator-plc4x] 01/19: move API message tests to correct location

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

jmclean pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git

commit efbc73c9cdbe598acf3eb673c81f6deefaa42df0
Author: Justin Mclean <jm...@apache.org>
AuthorDate: Thu Dec 28 08:03:10 2017 +1100

    move API message tests to correct location
---
 .../plc4x/java/api/messages/APIMessageTests.java   | 214 +++++++++++++++++++++
 .../plc4x/java/api/messages/mock/MockAddress.java  |  51 +++++
 2 files changed, 265 insertions(+)

diff --git a/plc4j/api/src/test/org/apache/plc4x/java/api/messages/APIMessageTests.java b/plc4j/api/src/test/org/apache/plc4x/java/api/messages/APIMessageTests.java
new file mode 100644
index 0000000..042245f
--- /dev/null
+++ b/plc4j/api/src/test/org/apache/plc4x/java/api/messages/APIMessageTests.java
@@ -0,0 +1,214 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+package org.apache.plc4x.java.api.messages;
+
+import org.apache.plc4x.java.api.messages.items.ReadRequestItem;
+import org.apache.plc4x.java.api.messages.items.ReadResponseItem;
+import org.apache.plc4x.java.api.messages.items.WriteRequestItem;
+import org.apache.plc4x.java.api.messages.items.WriteResponseItem;
+import org.apache.plc4x.java.api.messages.mock.MockAddress;
+import org.apache.plc4x.java.api.types.ResponseCode;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class APIMessageTests {
+
+    @Test
+    @Tag("fast")
+    void readRequestItemSize() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        ReadRequestItem readRequestItem = new ReadRequestItem(Byte.class, address, 1);
+        assertTrue(readRequestItem.getAddress().equals(address), "Unexpected address");
+        assertTrue(readRequestItem.getDatatype() == Byte.class, "Unexpected data type");
+        assertTrue(readRequestItem.getSize() == 1, "Unexpected size");
+    }
+
+    @Test
+    @Tag("fast")
+    void readRequestItem() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        ReadRequestItem readRequestItem = new ReadRequestItem(Byte.class, address);
+        assertTrue(readRequestItem.getAddress().equals(address), "Unexpected address");
+        assertTrue(readRequestItem.getDatatype() == Byte.class, "Unexpected data type");
+        assertTrue(readRequestItem.getSize() == 1, "Unexpected size");
+    }
+
+    @Test
+    @Tag("fast")
+    void readResponseItem() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        ReadRequestItem readRequestItem = new ReadRequestItem(Byte.class, address, 1);
+        ReadResponseItem readResponseItem = new  ReadResponseItem(readRequestItem, ResponseCode.OK, Collections.emptyList());
+        assertTrue(readResponseItem.getResponseCode() ==  ResponseCode.OK, "Unexpected response code");
+        assertTrue(readResponseItem.getValues().isEmpty(), "List should be empty");
+        assertTrue(readResponseItem.getRequestItem().equals(readRequestItem), "Unexpected read request item");
+    }
+
+    @Test
+    @Tag("fast")
+    void writeRequestItem() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        WriteRequestItem writeRequestItem = new WriteRequestItem(Byte.class, address, (byte) 0x45);
+        assertTrue(writeRequestItem.getAddress().equals(address), "Unexpected address");
+        assertTrue(writeRequestItem.getDatatype() == Byte.class, "Unexpected data type");
+        assertTrue((Byte) writeRequestItem.getValues()[0] == 0x45, "Unexpected value");
+    }
+
+    @Test
+    @Tag("fast")
+    void writeRequestItems() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        Byte data[] = { (byte) 0x23, (byte) 0x84 };
+        WriteRequestItem writeRequestItem = new WriteRequestItem(Byte.class, address, data);
+        assertTrue(writeRequestItem.getAddress().equals(address), "Unexpected address");
+        assertTrue(writeRequestItem.getDatatype() == Byte.class, "Unexpected data type");
+        assertTrue((Byte) writeRequestItem.getValues()[0] == (byte) 0x23, "Unexpected value");
+        assertTrue((Byte) writeRequestItem.getValues()[1] == (byte) 0x84, "Unexpected value");
+    }
+
+    @Test
+    @Tag("fast")
+    void writeResponseItem() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        WriteRequestItem writeRequestItem = new WriteRequestItem(Byte.class, address, (byte) 0x3B);
+        WriteResponseItem writeResponseItem = new  WriteResponseItem(writeRequestItem, ResponseCode.OK);
+        assertTrue(writeResponseItem.getResponseCode() ==  ResponseCode.OK, "Unexpected response code");
+        assertTrue(writeResponseItem.getRequestItem().equals(writeRequestItem),  "Unexpected response item");
+    }
+
+    @Test
+    @Tag("fast")
+    void plcReadRequestEmpty() {
+        PlcReadRequest plcReadRequest = new PlcReadRequest();
+        assertTrue(plcReadRequest.getReadRequestItems().isEmpty(), "Request items not empty");
+        assertTrue(plcReadRequest.getNumItems() == 0, "Expected request items to be zero");
+    }
+
+    @Test
+    @Tag("fast")
+    void plcReadRequestAddress() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        PlcReadRequest plcReadRequest = new PlcReadRequest(Byte.class, address);
+        assertTrue(plcReadRequest.getReadRequestItems().size() == 1, "Expected one request item");
+        assertTrue(plcReadRequest.getNumItems() == 1, "Expected one request item");
+    }
+
+    @Test
+    @Tag("fast")
+    void plcReadRequestSize() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        PlcReadRequest plcReadRequest = new PlcReadRequest(Byte.class, address, 1);
+        assertTrue(plcReadRequest.getReadRequestItems().size() == 1, "Expected one request item");
+        assertTrue(plcReadRequest.getNumItems() == 1, "Expected one request item");
+    }
+
+    @Test
+    @Tag("fast")
+    void plcReadRequestAddItem() {
+        PlcReadRequest plcReadRequest = new PlcReadRequest();
+        assertTrue(plcReadRequest.getReadRequestItems().isEmpty(), "Request items not empty");
+        assertTrue(plcReadRequest.getNumItems() == 0, "Expected request items to be zero");
+        MockAddress address = new MockAddress("mock:/DATA");
+        ReadRequestItem readRequestItem = new ReadRequestItem(Byte.class, address, 1);
+        plcReadRequest.addItem(readRequestItem);
+        assertTrue(plcReadRequest.getReadRequestItems().size() == 1, "Expected one request item");
+        assertTrue(plcReadRequest.getNumItems() == 1, "Expected one request item");
+    }
+
+    @Test
+    @Tag("fast")
+    void plcReadResponse() {
+        PlcReadRequest plcReadRequest = new PlcReadRequest();
+        ArrayList<ReadResponseItem> responseItems  = new ArrayList<>();
+        MockAddress address = new MockAddress("mock:/DATA");
+        ReadRequestItem readRequestItem = new ReadRequestItem(Byte.class, address, 1);
+        ReadResponseItem readResponseItem = new  ReadResponseItem(readRequestItem, ResponseCode.OK, Collections.emptyList());
+        responseItems.add(readResponseItem);
+        PlcReadResponse plcReadResponse = new PlcReadResponse(plcReadRequest, responseItems);
+        assertTrue(plcReadResponse.getRequest().getNumItems() == 0, "Unexpected number of response items");
+        assertTrue(plcReadResponse.getRequest().equals(plcReadRequest), "Unexpected read request");
+        assertTrue(plcReadResponse.getResponseItems().size() == 1, "Unexpected number of response items");
+        assertTrue(plcReadResponse.getResponseItems().containsAll(responseItems), "Unexpected items in response items");
+    }
+
+    @Test
+    @Tag("fast")
+    void plcWriteRequestItem() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        WriteRequestItem writeRequestItem = new WriteRequestItem(Byte.class, address, (byte) 0x45);
+
+        assertTrue(writeRequestItem.getAddress().equals(address), "Unexpected address");
+        assertTrue(writeRequestItem.getDatatype() == Byte.class, "Unexpected data type");
+        assertTrue((Byte) writeRequestItem.getValues()[0] == 0x45, "Unexpected value");
+    }
+
+    @Test
+    @Tag("fast")
+    void plcWriteRequestEmpty() {
+        PlcWriteRequest plcWriteRequest = new PlcWriteRequest();
+        assertTrue(plcWriteRequest.getRequestItems().isEmpty(), "Request items not empty");
+        assertTrue(plcWriteRequest.getNumItems() == 0, "Expected request items to be zero");
+    }
+
+    @Test
+    @Tag("fast")
+    void plcWriteRequestObject() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        PlcWriteRequest plcWriteRequest = new PlcWriteRequest(Byte.class, address, (byte) 0x33);
+        assertTrue(plcWriteRequest.getRequestItems().size() == 1, "Expected no request item");
+        assertTrue(plcWriteRequest.getNumItems() == 1, "Expected one request item");
+        Object[] values = (Object[])plcWriteRequest.getRequestItems().get(0).getValues();
+        assertTrue((byte)values[0] == (byte) 0x33, "Expected value 0x33");
+    }
+
+    @Test
+    @Tag("fast")
+    void plcWriteRequestObjects() {
+        MockAddress address = new MockAddress("mock:/DATA");
+        Byte[] data = {(byte)0x22, (byte)0x66};
+        PlcWriteRequest plcWriteRequest = new PlcWriteRequest(Byte.class, address, data);
+        assertTrue(plcWriteRequest.getRequestItems().size() == 1, "Expected one request item");
+        assertTrue(plcWriteRequest.getNumItems() == 1, "Expected one request item");
+        Byte[] values = (Byte[])plcWriteRequest.getRequestItems().get(0).getValues();
+        assertTrue(values[0] == (byte) 0x22, "Expected value 0x22");
+        assertTrue(values[1] == (byte) 0x66, "Expected value 0x66");
+    }
+
+    @Test
+    @Tag("fast")
+    void plcWriteResponse() {
+        PlcWriteRequest plcWriteRequest = new PlcWriteRequest();
+        ArrayList<WriteResponseItem> responseItems  = new ArrayList<>();
+        MockAddress address = new MockAddress("mock:/DATA");
+        WriteRequestItem writeRequestItem = new WriteRequestItem(Byte.class, address, 1);
+        WriteResponseItem writeResponseItem = new WriteResponseItem(writeRequestItem, ResponseCode.OK);
+        responseItems.add(writeResponseItem);
+        PlcWriteResponse plcReadResponse = new PlcWriteResponse(plcWriteRequest, responseItems);
+        assertTrue(plcReadResponse.getRequest().getNumItems() == 0, "Unexpected number of response items");
+        assertTrue(plcReadResponse.getRequest().equals(plcWriteRequest), "Unexpected read request");
+        assertTrue(plcReadResponse.getResponseItems().size() == 1, "Unexpected number of response items");
+        assertTrue(plcReadResponse.getResponseItems().containsAll(responseItems), "Unexpected items in response items");
+    }
+}
diff --git a/plc4j/api/src/test/org/apache/plc4x/java/api/messages/mock/MockAddress.java b/plc4j/api/src/test/org/apache/plc4x/java/api/messages/mock/MockAddress.java
new file mode 100644
index 0000000..44ad2c1
--- /dev/null
+++ b/plc4j/api/src/test/org/apache/plc4x/java/api/messages/mock/MockAddress.java
@@ -0,0 +1,51 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+package org.apache.plc4x.java.api.messages.mock;
+
+import org.apache.plc4x.java.api.model.Address;
+
+public class MockAddress implements Address {
+  private final String address;
+  
+  public MockAddress(String address) {
+    this.address = address;
+  }
+  
+  public String getAddress() {
+    return address;
+  }
+  
+  @Override
+  public String toString() {
+    return "mock address: "+address;
+  }
+  
+  @Override
+  public boolean equals(Object o) {
+    return o != null
+        && o instanceof MockAddress
+        && ((MockAddress)o).address.equals(this.address);
+  }
+
+  @Override
+  public int hashCode() {
+    return address.hashCode();
+  }
+
+}

-- 
To stop receiving notification emails like this one, please contact
"commits@plc4x.apache.org" <co...@plc4x.apache.org>.