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