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 2018/11/10 16:46:13 UTC

[incubator-plc4x] branch master updated: - Testing of the Default message types in driver base

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 222e2e9  - Testing of the Default message types in driver base
222e2e9 is described below

commit 222e2e95da32e20573623d33abc33ff97f85696e
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Sat Nov 10 17:45:59 2018 +0100

    - Testing of the Default message types in driver base
---
 .../PlcUsernamePasswordAuthentication.java         | 12 ++-
 .../plc4x/java/api/messages/PlcFieldRequest.java   |  4 +-
 .../PlcUsernamePasswordAuthenticationTest.java     |  2 +-
 .../java/ads/model/AdsSubscriptionHandle.java      |  1 +
 plc4j/protocols/driver-bases/base/pom.xml          |  6 ++
 .../java/base/messages/DefaultPlcReadRequest.java  |  4 +-
 .../messages/DefaultPlcSubscriptionRequest.java    |  8 +-
 .../java/base/messages/DefaultPlcWriteRequest.java |  8 +-
 .../base/messages/InternalPlcFieldRequest.java     |  4 +-
 .../messages/InternalPlcSubscriptionRequest.java   |  7 +-
 .../base/messages/InternalPlcWriteRequest.java     |  7 +-
 .../base/model/DefaultPlcConsumerRegistration.java | 24 +++---
 .../base/model/DefaultPlcSubscriptionHandle.java   |  1 +
 .../model/InternalPlcConsumerRegistration.java     |  2 +
 .../base/messages/DefaultPlcReadRequestTest.java   |  6 +-
 .../DefaultPlcSubscriptionRequestTest.java         | 10 +--
 .../model/DefaultPlcConsumerRegistrationTest.java  | 88 ++++++++++++++++++++++
 .../model/DefaultPlcSubscriptionHandleTest.java    | 72 ++++++++++++++++++
 .../java/base/model/SubscriptionPlcFieldTest.java  | 68 +++++++++++++++++
 19 files changed, 290 insertions(+), 44 deletions(-)

diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthentication.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthentication.java
index b73b2ee..a02b24e 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthentication.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthentication.java
@@ -41,16 +41,20 @@ public class PlcUsernamePasswordAuthentication implements PlcAuthentication {
     }
 
     @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+    public final boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof PlcUsernamePasswordAuthentication)) {
+            return false;
+        }
         PlcUsernamePasswordAuthentication that = (PlcUsernamePasswordAuthentication) o;
         return Objects.equals(username, that.username) &&
             Objects.equals(password, that.password);
     }
 
     @Override
-    public int hashCode() {
+    public final int hashCode() {
         return Objects.hash(username, password);
     }
 
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java
index 85263b7..2ef86cc 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java
@@ -21,7 +21,7 @@ package org.apache.plc4x.java.api.messages;
 import org.apache.plc4x.java.api.model.PlcField;
 
 import java.util.LinkedHashSet;
-import java.util.LinkedList;
+import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
 public interface PlcFieldRequest extends PlcRequest {
@@ -35,6 +35,6 @@ public interface PlcFieldRequest extends PlcRequest {
 
     PlcField getField(String name);
 
-    LinkedList<PlcField> getFields();
+    List<PlcField> getFields();
 
 }
diff --git a/plc4j/api/src/test/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthenticationTest.java b/plc4j/api/src/test/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthenticationTest.java
index 1932932..0b2c62d 100644
--- a/plc4j/api/src/test/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthenticationTest.java
+++ b/plc4j/api/src/test/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthenticationTest.java
@@ -53,7 +53,7 @@ public class PlcUsernamePasswordAuthenticationTest {
 
     @Test
     public void equalsContract() {
-        EqualsVerifier.forClass(PlcUsernamePasswordAuthentication.class).usingGetClass().verify();
+        EqualsVerifier.forClass(PlcUsernamePasswordAuthentication.class).verify();
     }
 
 }
\ No newline at end of file
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java
index aa9b9d5..e549097 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java
@@ -81,4 +81,5 @@ public class AdsSubscriptionHandle extends DefaultPlcSubscriptionHandle {
             ", notificationHandle=" + notificationHandle +
             "} " + super.toString();
     }
+
 }
diff --git a/plc4j/protocols/driver-bases/base/pom.xml b/plc4j/protocols/driver-bases/base/pom.xml
index 58b236d..394c2de 100644
--- a/plc4j/protocols/driver-bases/base/pom.xml
+++ b/plc4j/protocols/driver-bases/base/pom.xml
@@ -83,6 +83,12 @@
       <version>1.6.1</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>nl.jqno.equalsverifier</groupId>
+      <artifactId>equalsverifier</artifactId>
+      <version>3.0.2</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java
index b08fd85..063f105 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java
@@ -61,12 +61,12 @@ public class DefaultPlcReadRequest implements InternalPlcReadRequest, InternalPl
     }
 
     @Override
-    public LinkedList<PlcField> getFields() {
+    public List<PlcField> getFields() {
         return new LinkedList<>(fields.values());
     }
 
     @Override
-    public LinkedList<Pair<String, PlcField>> getNamedFields() {
+    public List<Pair<String, PlcField>> getNamedFields() {
         return fields.entrySet()
             .stream()
             .map(stringPlcFieldEntry -> Pair.of(stringPlcFieldEntry.getKey(), stringPlcFieldEntry.getValue()))
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java
index 48ded49..5fca8a8 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java
@@ -68,12 +68,12 @@ public class DefaultPlcSubscriptionRequest implements InternalPlcSubscriptionReq
     }
 
     @Override
-    public LinkedList<PlcField> getFields() {
+    public List<PlcField> getFields() {
         return fields.values().stream().map(SubscriptionPlcField::getPlcField).collect(Collectors.toCollection(LinkedList::new));
     }
 
     @Override
-    public LinkedList<SubscriptionPlcField> getSubscriptionFields() {
+    public List<SubscriptionPlcField> getSubscriptionFields() {
         return new LinkedList<>(fields.values());
     }
 
@@ -83,7 +83,7 @@ public class DefaultPlcSubscriptionRequest implements InternalPlcSubscriptionReq
     }
 
     @Override
-    public LinkedList<Pair<String, PlcField>> getNamedFields() {
+    public List<Pair<String, PlcField>> getNamedFields() {
         return fields.entrySet()
             .stream()
             .map(stringPlcFieldEntry -> Pair.of(stringPlcFieldEntry.getKey(), stringPlcFieldEntry.getValue().getPlcField()))
@@ -91,7 +91,7 @@ public class DefaultPlcSubscriptionRequest implements InternalPlcSubscriptionReq
     }
 
     @Override
-    public LinkedList<Pair<String, SubscriptionPlcField>> getNamedSubscriptionFields() {
+    public List<Pair<String, SubscriptionPlcField>> getNamedSubscriptionFields() {
         return fields.entrySet()
             .stream()
             .map(stringPlcFieldEntry -> Pair.of(stringPlcFieldEntry.getKey(), stringPlcFieldEntry.getValue()))
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java
index 9ede855..67dc29f 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java
@@ -70,7 +70,7 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal
     }
 
     @Override
-    public LinkedList<PlcField> getFields() {
+    public List<PlcField> getFields() {
         return fields.values().stream().map(Pair::getKey).collect(Collectors.toCollection(LinkedList::new));
     }
 
@@ -79,12 +79,12 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal
     }
 
     @Override
-    public LinkedList<BaseDefaultFieldItem> getFieldItems() {
+    public List<BaseDefaultFieldItem> getFieldItems() {
         return fields.values().stream().map(Pair::getValue).collect(Collectors.toCollection(LinkedList::new));
     }
 
     @Override
-    public LinkedList<Pair<String, PlcField>> getNamedFields() {
+    public List<Pair<String, PlcField>> getNamedFields() {
         return fields.entrySet()
             .stream()
             .map(stringPairEntry ->
@@ -96,7 +96,7 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal
     }
 
     @Override
-    public LinkedList<Triple<String, PlcField, BaseDefaultFieldItem>> getNamedFieldTriples() {
+    public List<Triple<String, PlcField, BaseDefaultFieldItem>> getNamedFieldTriples() {
         return fields.entrySet()
             .stream()
             .map(stringPairEntry ->
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java
index 30c440e..2e869c3 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java
@@ -22,10 +22,10 @@ import org.apache.commons.lang3.tuple.Pair;
 import org.apache.plc4x.java.api.messages.PlcFieldRequest;
 import org.apache.plc4x.java.api.model.PlcField;
 
-import java.util.LinkedList;
+import java.util.List;
 
 public interface InternalPlcFieldRequest extends PlcFieldRequest, InternalPlcRequest {
 
-    LinkedList<Pair<String, PlcField>> getNamedFields();
+    List<Pair<String, PlcField>> getNamedFields();
 
 }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java
index 8901fef..1e727ad 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java
@@ -23,13 +23,14 @@ import org.apache.plc4x.java.api.messages.PlcSubscriptionRequest;
 import org.apache.plc4x.java.base.model.SubscriptionPlcField;
 
 import java.util.LinkedHashMap;
-import java.util.LinkedList;
+import java.util.List;
 
 public interface InternalPlcSubscriptionRequest extends PlcSubscriptionRequest, InternalPlcFieldRequest {
 
-    LinkedList<SubscriptionPlcField> getSubscriptionFields();
+    List<SubscriptionPlcField> getSubscriptionFields();
 
     LinkedHashMap<String, SubscriptionPlcField> getSubscriptionPlcFieldMap();
 
-    LinkedList<Pair<String, SubscriptionPlcField>> getNamedSubscriptionFields();
+    List<Pair<String, SubscriptionPlcField>> getNamedSubscriptionFields();
+
 }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java
index af717d7..5a68f63 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java
@@ -23,13 +23,14 @@ import org.apache.plc4x.java.api.messages.PlcWriteRequest;
 import org.apache.plc4x.java.api.model.PlcField;
 import org.apache.plc4x.java.base.messages.items.BaseDefaultFieldItem;
 
-import java.util.LinkedList;
+import java.util.List;
 
 public interface InternalPlcWriteRequest extends PlcWriteRequest, InternalPlcRequest {
 
     BaseDefaultFieldItem getFieldItem(String name);
 
-    LinkedList<BaseDefaultFieldItem> getFieldItems();
+    List<BaseDefaultFieldItem> getFieldItems();
+
+    List<Triple<String, PlcField, BaseDefaultFieldItem>> getNamedFieldTriples();
 
-    LinkedList<Triple<String, PlcField, BaseDefaultFieldItem>> getNamedFieldTriples();
 }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java
index 55b1cf9..dfcef84 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java
@@ -30,7 +30,7 @@ public class DefaultPlcConsumerRegistration implements InternalPlcConsumerRegist
 
     private final PlcSubscriber plcSubscriber;
 
-    private final Collection<? extends InternalPlcSubscriptionHandle> handles;
+    private final Collection<InternalPlcSubscriptionHandle> handles;
 
     private final int consumerHash;
 
@@ -46,12 +46,17 @@ public class DefaultPlcConsumerRegistration implements InternalPlcConsumerRegist
     }
 
     @Override
-    public Collection<? extends InternalPlcSubscriptionHandle> getAssociatedHandles() {
+    public Collection<InternalPlcSubscriptionHandle> getAssociatedHandles() {
         return handles;
     }
 
     @Override
-    public boolean equals(Object o) {
+    public void unregister() {
+        plcSubscriber.unregister(this);
+    }
+
+    @Override
+    public final boolean equals(Object o) {
         if (this == o) {
             return true;
         }
@@ -59,13 +64,14 @@ public class DefaultPlcConsumerRegistration implements InternalPlcConsumerRegist
             return false;
         }
         DefaultPlcConsumerRegistration that = (DefaultPlcConsumerRegistration) o;
-        return consumerHash == that.consumerHash &&
-            Objects.equals(handles, that.handles);
+        return Objects.equals(plcSubscriber, that.plcSubscriber) &&
+            Objects.equals(handles, that.handles) &&
+            consumerHash == that.consumerHash;
     }
 
     @Override
-    public int hashCode() {
-        return Objects.hash(handles, consumerHash);
+    public final int hashCode() {
+        return Objects.hash(plcSubscriber, handles, consumerHash);
     }
 
     @Override
@@ -76,8 +82,4 @@ public class DefaultPlcConsumerRegistration implements InternalPlcConsumerRegist
             '}';
     }
 
-    @Override
-    public void unregister() {
-        plcSubscriber.unregister(this);
-    }
 }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandle.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandle.java
index 3eb685b..ac1a1d5 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandle.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandle.java
@@ -63,4 +63,5 @@ public class DefaultPlcSubscriptionHandle implements InternalPlcSubscriptionHand
             "plcSubscriber=" + plcSubscriber +
             '}';
     }
+
 }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java
index bddb889..3b222b4 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java
@@ -23,7 +23,9 @@ import org.apache.plc4x.java.api.model.PlcConsumerRegistration;
 import java.util.Collection;
 
 public interface InternalPlcConsumerRegistration extends PlcConsumerRegistration {
+
     int getConsumerHash();
 
     Collection<? extends InternalPlcSubscriptionHandle> getAssociatedHandles();
+
 }
diff --git a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequestTest.java b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequestTest.java
index 6799a62..5bb1f30 100644
--- a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequestTest.java
+++ b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequestTest.java
@@ -30,7 +30,7 @@ import org.junit.jupiter.api.Test;
 import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
-import java.util.LinkedList;
+import java.util.List;
 
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.notNullValue;
@@ -78,7 +78,7 @@ class DefaultPlcReadRequestTest {
 
     @Test
     void getFields() {
-        LinkedList<PlcField> fields = SUT.getFields();
+        List<PlcField> fields = SUT.getFields();
         assertThat(fields, notNullValue());
         assertThat(fields.size(), equalTo(1));
         PlcField field = fields.iterator().next();
@@ -87,7 +87,7 @@ class DefaultPlcReadRequestTest {
 
     @Test
     void getNamedFields() {
-        LinkedList<Pair<String, PlcField>> namedFields = SUT.getNamedFields();
+        List<Pair<String, PlcField>> namedFields = SUT.getNamedFields();
         assertThat(namedFields, notNullValue());
         assertThat(namedFields.size(), equalTo(1));
         Pair<String, PlcField> entry = namedFields.iterator().next();
diff --git a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequestTest.java b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequestTest.java
index 2f8a363..484c33e 100644
--- a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequestTest.java
+++ b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequestTest.java
@@ -33,7 +33,7 @@ import java.time.temporal.ChronoUnit;
 import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
-import java.util.LinkedList;
+import java.util.List;
 
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.notNullValue;
@@ -88,7 +88,7 @@ class DefaultPlcSubscriptionRequestTest {
 
     @Test
     void getFields() {
-        LinkedList<PlcField> fields = SUT.getFields();
+        List<PlcField> fields = SUT.getFields();
         assertThat(fields, notNullValue());
         assertThat(fields.size(), equalTo(1));
         PlcField field = fields.iterator().next();
@@ -97,7 +97,7 @@ class DefaultPlcSubscriptionRequestTest {
 
     @Test
     void getSubscriptionFields() {
-        LinkedList<SubscriptionPlcField> fields = SUT.getSubscriptionFields();
+        List<SubscriptionPlcField> fields = SUT.getSubscriptionFields();
         assertThat(fields, notNullValue());
         assertThat(fields.size(), equalTo(1));
         SubscriptionPlcField field = fields.iterator().next();
@@ -114,7 +114,7 @@ class DefaultPlcSubscriptionRequestTest {
 
     @Test
     void getNamedFields() {
-        LinkedList<Pair<String, PlcField>> namedFields = SUT.getNamedFields();
+        List<Pair<String, PlcField>> namedFields = SUT.getNamedFields();
         assertThat(namedFields, notNullValue());
         assertThat(namedFields.size(), equalTo(1));
         Pair<String, PlcField> entry = namedFields.iterator().next();
@@ -124,7 +124,7 @@ class DefaultPlcSubscriptionRequestTest {
 
     @Test
     void getNamedSubscriptionFields() {
-        LinkedList<Pair<String, SubscriptionPlcField>> namedFields = SUT.getNamedSubscriptionFields();
+        List<Pair<String, SubscriptionPlcField>> namedFields = SUT.getNamedSubscriptionFields();
         assertThat(namedFields, notNullValue());
         assertThat(namedFields.size(), equalTo(1));
         Pair<String, SubscriptionPlcField> entry = namedFields.iterator().next();
diff --git a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistrationTest.java b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistrationTest.java
new file mode 100644
index 0000000..29696fa
--- /dev/null
+++ b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistrationTest.java
@@ -0,0 +1,88 @@
+/*
+ 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.base.model;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+import org.apache.plc4x.java.api.messages.PlcSubscriptionEvent;
+import org.apache.plc4x.java.base.messages.PlcSubscriber;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.util.Collection;
+import java.util.function.Consumer;
+
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.hamcrest.core.IsNull.notNullValue;
+import static org.junit.Assert.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+class DefaultPlcConsumerRegistrationTest {
+
+    @Mock
+    private PlcSubscriber subscriber;
+    @Mock
+    private Consumer<PlcSubscriptionEvent> consumer;
+    @Mock
+    private InternalPlcSubscriptionHandle subscriptionHandle;
+    private DefaultPlcConsumerRegistration SUT;
+
+    @BeforeEach
+    void setUp() {
+        SUT = new DefaultPlcConsumerRegistration(subscriber, consumer, subscriptionHandle);
+    }
+
+    @Test
+    void getConsumerHash() {
+        int consumerHash = SUT.getConsumerHash();
+        assertThat(consumerHash, equalTo(consumer.hashCode()));
+    }
+
+    @Test
+    void getAssociatedHandles() {
+        Collection<InternalPlcSubscriptionHandle> associatedHandles = SUT.getAssociatedHandles();
+        assertThat(associatedHandles, notNullValue());
+        assertThat(associatedHandles.size(), equalTo(1));
+        assertThat(associatedHandles.iterator().next(), equalTo(subscriptionHandle));
+    }
+
+    @Test
+    public void unregister() {
+        SUT.unregister();
+        verify(subscriber, times(1)).unregister(any());
+    }
+
+    @Test
+    public void testToString() {
+        String s = SUT.toString();
+        assertThat(s, notNullValue());
+    }
+
+    @Test
+    void equals() {
+        EqualsVerifier.forClass(DefaultPlcConsumerRegistration.class).verify();
+    }
+
+}
\ No newline at end of file
diff --git a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandleTest.java b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandleTest.java
new file mode 100644
index 0000000..9f8ef53
--- /dev/null
+++ b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandleTest.java
@@ -0,0 +1,72 @@
+/*
+ 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.base.model;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+import nl.jqno.equalsverifier.Warning;
+import org.apache.plc4x.java.api.messages.PlcSubscriptionEvent;
+import org.apache.plc4x.java.base.messages.PlcSubscriber;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.util.Collections;
+import java.util.function.Consumer;
+
+import static org.hamcrest.core.IsNull.notNullValue;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+class DefaultPlcSubscriptionHandleTest {
+
+    @Mock
+    private PlcSubscriber subscriber;
+    @Mock
+    private Consumer<PlcSubscriptionEvent> consumer;
+    private DefaultPlcSubscriptionHandle SUT;
+
+    @BeforeEach
+    void setUp() {
+        SUT = new DefaultPlcSubscriptionHandle(subscriber);
+    }
+
+    @Test
+    void register() {
+        SUT.register(consumer);
+        verify(subscriber, times(1)).register(consumer, Collections.singletonList(SUT));
+    }
+
+    @Test
+    public void testToString() {
+        String s = SUT.toString();
+        assertThat(s, notNullValue());
+    }
+
+    @Test
+    void equals() {
+        EqualsVerifier.forClass(DefaultPlcSubscriptionHandle.class)
+            .suppress(Warning.STRICT_INHERITANCE).verify();
+    }
+
+}
\ No newline at end of file
diff --git a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/SubscriptionPlcFieldTest.java b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/SubscriptionPlcFieldTest.java
new file mode 100644
index 0000000..d5fc38b
--- /dev/null
+++ b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/SubscriptionPlcFieldTest.java
@@ -0,0 +1,68 @@
+/*
+ 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.base.model;
+
+import org.apache.plc4x.java.api.model.PlcField;
+import org.apache.plc4x.java.api.types.PlcSubscriptionType;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.Optional;
+
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.assertThat;
+
+@ExtendWith(MockitoExtension.class)
+class SubscriptionPlcFieldTest {
+
+    @Mock
+    private PlcField field;
+    private SubscriptionPlcField SUT;
+
+    @BeforeEach
+    void setUp() {
+        SUT = new SubscriptionPlcField(PlcSubscriptionType.CYCLIC, field, Duration.of(1, ChronoUnit.SECONDS));
+    }
+
+    @Test
+    void getPlcSubscriptionType() {
+        PlcSubscriptionType plcSubscriptionType = SUT.getPlcSubscriptionType();
+        assertThat(plcSubscriptionType, equalTo(PlcSubscriptionType.CYCLIC));
+    }
+
+    @Test
+    void getPlcField() {
+        PlcField plcField = SUT.getPlcField();
+        assertThat(plcField, equalTo(field));
+    }
+
+    @Test
+    void getDuration() {
+        Optional<Duration> durationOptional = SUT.getDuration();
+        assertThat(durationOptional.isPresent(), equalTo(true));
+        assertThat(durationOptional.get(), equalTo(Duration.of(1, ChronoUnit.SECONDS)));
+    }
+
+}
\ No newline at end of file