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);