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 2018/09/06 15:21:52 UTC

[incubator-plc4x] 01/02: [edgent] fixed broken test

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

sruehl pushed a commit to branch feature/api-redesign-chris-c
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git

commit 6ed4be88c396dcfda80769b9c2acfdb584e70db8
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Sep 6 16:41:34 2018 +0200

    [edgent] fixed broken test
---
 .../plc4x/edgent/PlcConnectionAdapterTest.java     | 69 +++++++++++++---------
 1 file changed, 42 insertions(+), 27 deletions(-)

diff --git a/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/PlcConnectionAdapterTest.java b/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/PlcConnectionAdapterTest.java
index 1b22d8f..38e7f17 100644
--- a/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/PlcConnectionAdapterTest.java
+++ b/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/PlcConnectionAdapterTest.java
@@ -18,29 +18,34 @@ under the License.
 */
 package org.apache.plc4x.edgent;
 
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsEqual.equalTo;
-import static org.hamcrest.core.IsNot.not;
-import static org.hamcrest.core.IsNull.notNullValue;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-
+import com.google.gson.JsonObject;
 import org.apache.edgent.function.Consumer;
 import org.apache.edgent.function.Function;
 import org.apache.edgent.function.Supplier;
-import org.apache.plc4x.edgent.mock.MockField;
 import org.apache.plc4x.edgent.mock.MockConnection;
+import org.apache.plc4x.edgent.mock.MockField;
 import org.apache.plc4x.java.PlcDriverManager;
 import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
 import org.apache.plc4x.java.api.messages.PlcReadRequest;
+import org.apache.plc4x.java.api.messages.PlcReadResponse;
+import org.apache.plc4x.java.api.messages.PlcWriteRequest;
+import org.apache.plc4x.java.api.messages.PlcWriteResponse;
 import org.apache.plc4x.java.api.model.PlcField;
+import org.apache.plc4x.java.base.messages.items.IntegerFieldItem;
 import org.apache.plc4x.test.FastTests;
 import org.hamcrest.core.IsInstanceOf;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import com.google.gson.JsonObject;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.hamcrest.core.IsNot.not;
+import static org.hamcrest.core.IsNull.notNullValue;
+import static org.hamcrest.core.IsSame.sameInstance;
+import static org.junit.Assert.assertThat;
 
 public class PlcConnectionAdapterTest {
 
@@ -78,28 +83,36 @@ public class PlcConnectionAdapterTest {
         adapter.close();
     }
 
-    /*private <T> void checkRead(MockConnection connection, TypeSafePlcReadRequest<T> request, T value) throws InterruptedException, ExecutionException {
+    private <T> void checkRead(MockConnection connection, PlcReadRequest request, T value) throws InterruptedException, ExecutionException {
         // this is really a tests of our mock tooling but knowing it's behaving as expected
         // will help identify problems in the adapter/supplier/consumer
-        connection.setDataValue(request.getCheckedReadRequestItems().get(0).getField(), value);
+        PlcField plcField = request.getFields().get(0);
+        // TODO: smart value conversion
+        connection.setFieldItem(plcField, new IntegerFieldItem(0L));
 
-        CompletableFuture<TypeSafePlcReadResponse<T>> cf = connection.read(request);
+        CompletableFuture<PlcReadResponse> cf = connection.read(request);
 
         assertThat(cf.isDone(), is(true));
-        TypeSafePlcReadResponse<T> response = cf.get();
-        assertThat(value, equalTo(response.getResponseItems().get(0).getValues().get(0)));
+        PlcReadResponse response = cf.get();
+        // TODO: fixme
+        // assertThat(value, equalTo(response.getResponseItems().get(0).getValues().get(0)));
     }
 
-    private <T> void checkWrite(MockConnection connection, TypeSafePlcWriteRequest<T> request, T value) throws InterruptedException, ExecutionException {
+
+    private <T> void checkWrite(MockConnection connection, PlcWriteRequest request, T value) throws InterruptedException, ExecutionException {
         // this is really a tests of our mock tooling but knowing it's behaving as expected
         // will help identify problems in the adapter/supplier/consumer
-        connection.setDataValue(request.getRequestItems().get(0).getField(), value);
+        PlcField plcField = request.getFields().get(0);
+        connection.setFieldItem(plcField, new IntegerFieldItem(0L));
 
-        CompletableFuture<TypeSafePlcWriteResponse<T>> cf = connection.write(request);
+        CompletableFuture<PlcWriteResponse> cf = connection.write(request);
 
         assertThat(cf.isDone(), is(true));
         PlcWriteResponse response = cf.get();
         assertThat(response, notNullValue());
+
+        // TODO: fixme
+        /*
         Object writtenData = connection.getDataValue(request.getRequestItems().get(0).getField());
         if (writtenData.getClass().isArray()) {
             writtenData = Array.get(writtenData, 0);
@@ -109,8 +122,8 @@ public class PlcConnectionAdapterTest {
             List<Object> writtenDataList = (List<Object>) writtenData;
             writtenData = writtenDataList.get(0);
         }
-        assertThat(value, equalTo(writtenData));
-    }*/
+        assertThat(value, equalTo(writtenData));*/
+    }
 
     /*
      * Verify the adapter yields the appropriate PlcReadRequest for each type and that it works.
@@ -128,9 +141,9 @@ public class PlcConnectionAdapterTest {
             assertThat(readRequest.getNumberOfFields(), equalTo(1));
             assertThat(readRequest.getField("test"), notNullValue());
             assertThat(readRequest.getField("test"), IsInstanceOf.instanceOf(MockField.class));
-            assertThat(((MockField) readRequest.getField("test")).getAddress(), equalTo(address));
-            /*checkRead(connection, readRequest, true);
-            checkRead(connection, readRequest, false);*/
+            assertThat(((MockField) readRequest.getField("test")).getAddress(), equalTo(addressStr));
+            checkRead(connection, readRequest, true);
+            checkRead(connection, readRequest, false);
         }
         /*{
             TypeSafePlcReadRequest<Byte> request = PlcConnectionAdapter.newPlcReadRequest(Byte.class, address);
@@ -493,8 +506,9 @@ public class PlcConnectionAdapterTest {
 
     private static <T> void checkConsumerJson(int writeFailureCountTrigger, MockConnection connection,
                                               MockField field, Consumer<JsonObject> consumer, Object... values) {
-        if (writeFailureCountTrigger > 0)
+        if (writeFailureCountTrigger > 0) {
             connection.setWriteException(writeFailureCountTrigger, "This is a mock write exception");
+        }
         int writeCount = 0;
         Object previousValue = null;
         for (Object value : values) {
@@ -502,12 +516,13 @@ public class PlcConnectionAdapterTest {
             // build the JsonObject to consume
             JsonObject jo = new JsonObject();
             jo.addProperty("address", field.getAddress());
-            if (value instanceof Boolean)
+            if (value instanceof Boolean) {
                 jo.addProperty("value", (Boolean) value);
-            else if (value instanceof Number)
+            } else if (value instanceof Number) {
                 jo.addProperty("value", (Number) value);
-            else if (value instanceof String)
+            } else if (value instanceof String) {
                 jo.addProperty("value", (String) value);
+            }
 
             consumer.accept(jo);