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

sruehl 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 093de00  added missing toString()/hashCode()/equals()
093de00 is described below

commit 093de0007efd9a90c65cc12c880b270ad4df0a52
Author: Sebastian Rühl <sru...@apache.org>
AuthorDate: Thu Aug 9 17:08:15 2018 +0200

    added missing toString()/hashCode()/equals()
---
 .../plc4x/java/api/messages/PlcReadRequest.java    |  8 ++-
 .../plc4x/java/api/messages/PlcReadResponse.java   |  9 ++-
 .../java/api/messages/PlcSubscriptionEvent.java    | 24 +++++++
 .../java/api/messages/PlcSubscriptionRequest.java  |  4 ++
 .../java/api/messages/PlcSubscriptionResponse.java |  4 ++
 .../api/messages/PlcUnsubscriptionRequest.java     | 23 +++++++
 .../api/messages/PlcUnsubscriptionResponse.java    |  4 ++
 .../plc4x/java/api/messages/PlcWriteRequest.java   |  5 ++
 .../plc4x/java/api/messages/PlcWriteResponse.java  |  5 ++
 .../java/api/messages/items/ReadRequestItem.java   |  7 ++
 .../java/api/messages/items/ReadResponseItem.java  |  7 ++
 .../api/messages/items/SubscriptionEventItem.java  | 28 ++++++++
 .../SubscriptionRequestChangeOfStateItem.java      |  4 ++
 .../items/SubscriptionRequestEventItem.java        |  4 ++
 .../java/api/messages/items/WriteRequestItem.java  |  7 ++
 .../java/api/messages/items/WriteResponseItem.java |  4 ++
 .../messages/specific/TypeSafePlcReadRequest.java  |  7 ++
 .../messages/specific/TypeSafePlcReadResponse.java |  5 ++
 .../messages/specific/TypeSafePlcWriteRequest.java |  7 ++
 .../specific/TypeSafePlcWriteResponse.java         |  5 ++
 .../plc4x/java/api/messages/APIMessageTests.java   | 15 ++++
 ...nseTest.java => PlcProprietaryRequestTest.java} | 33 +++++----
 .../api/messages/PlcProprietaryResponseTest.java   | 53 ++++++++++++++
 .../java/api/messages/PlcReadRequestTest.java      |  2 +-
 .../java/api/messages/PlcReadResponseTest.java     |  2 +-
 .../java/api/messages/PlcRequestContainerTest.java | 80 ++++++++++++++++++++++
 .../plc4x/java/api/messages/PlcRequestTest.java    | 10 +++
 .../plc4x/java/api/messages/PlcResponseTest.java   | 20 ++++--
 .../api/messages/PlcSubscriptionEventTest.java     | 59 ++++++++++++++++
 .../api/messages/PlcSubscriptionRequestTest.java}  | 16 ++---
 .../api/messages/PlcSubscriptionResponseTest.java} | 21 ++++--
 ...Test.java => PlcUnsubscriptionRequestTest.java} | 63 ++++++-----------
 .../messages/PlcUnsubscriptionResponseTest.java}   | 17 +++--
 .../java/api/messages/PlcWriteRequestTest.java     |  4 ++
 .../java/api/messages/PlcWriteResponseTest.java    |  6 +-
 35 files changed, 478 insertions(+), 94 deletions(-)

diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadRequest.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadRequest.java
index a190e5d..aabcbcc 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadRequest.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadRequest.java
@@ -28,11 +28,11 @@ import java.util.Objects;
 /**
  * Request to read one or more values from a plc.
  * The {@link PlcReadRequest} is a container for one or more {@link 
ReadRequestItem}s that are contained.
- *
+ * <p>
  * By default this is NOT typesafe as it can contain {@link ReadRequestItem}s 
for different types.
  * If there are only {@link ReadRequestItem}s of the same type one can use the 
{@link TypeSafePlcReadRequest} to enforce
  * type safety.
- *
+ * <p>
  * Provides a builder for object construction through {@link 
PlcReadRequest#builder()}.
  *
  * @see TypeSafePlcReadRequest
@@ -114,5 +114,9 @@ public class PlcReadRequest extends 
PlcRequest<ReadRequestItem<?>> {
 
     }
 
+    @Override
+    public String toString() {
+        return "PlcReadRequest{} " + super.toString();
+    }
 }
 
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java
index 136f478..8d3d298 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java
@@ -28,9 +28,9 @@ import java.util.Optional;
 /**
  * Response to a {@link PlcReadRequest}.
  * Contains the values read from the PLC but untyped.
- *
+ * <p>
  * Values are extracted using the {@link ReadRequestItem}s that were send in 
the read request.
- *
+ * <p>
  * If only a variables of one type are requested it is better to use
  * {@link org.apache.plc4x.java.api.messages.specific.TypeSafePlcReadRequest} 
which leads to a
  * {@link org.apache.plc4x.java.api.messages.specific.TypeSafePlcReadResponse}.
@@ -49,4 +49,9 @@ public class PlcReadResponse extends 
PlcResponse<PlcReadRequest, ReadResponseIte
     public <T> Optional<ReadResponseItem<T>> getValue(ReadRequestItem<T> item) 
{
         return (Optional) super.getValue(item);
     }
+
+    @Override
+    public String toString() {
+        return "PlcReadResponse{} " + super.toString();
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionEvent.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionEvent.java
index e8b1d0d..6c2cfe7 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionEvent.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionEvent.java
@@ -3,6 +3,7 @@ package org.apache.plc4x.java.api.messages;
 import org.apache.plc4x.java.api.messages.items.SubscriptionEventItem;
 
 import java.util.List;
+import java.util.Objects;
 
 /*
 Licensed to the Apache Software Foundation (ASF) under one
@@ -34,4 +35,27 @@ public class PlcSubscriptionEvent {
         return eventItems;
     }
 
+    @Override
+    public String toString() {
+        return "PlcSubscriptionEvent{" +
+            "eventItems=" + eventItems +
+            '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof PlcSubscriptionEvent)) {
+            return false;
+        }
+        PlcSubscriptionEvent that = (PlcSubscriptionEvent) o;
+        return Objects.equals(eventItems, that.eventItems);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(eventItems);
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequest.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequest.java
index 65b0659..5fa8ac4 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequest.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequest.java
@@ -22,4 +22,8 @@ import 
org.apache.plc4x.java.api.messages.items.SubscriptionRequestItem;
 
 public class PlcSubscriptionRequest extends 
PlcRequest<SubscriptionRequestItem<?>> {
 
+    @Override
+    public String toString() {
+        return "PlcSubscriptionRequest{} " + super.toString();
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponse.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponse.java
index 3c271df..a516b74 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponse.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponse.java
@@ -29,4 +29,8 @@ public class PlcSubscriptionResponse extends 
PlcResponse<PlcSubscriptionRequest,
         super(request, subscriptionResponseItems);
     }
 
+    @Override
+    public String toString() {
+        return "PlcSubscriptionResponse{} " + super.toString();
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequest.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequest.java
index 94377d3..ed12177 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequest.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequest.java
@@ -51,4 +51,27 @@ public class PlcUnsubscriptionRequest implements PlcMessage {
         return getRequestItems().size();
     }
 
+    @Override
+    public String toString() {
+        return "PlcUnsubscriptionRequest{" +
+            "requestItems=" + requestItems +
+            '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof PlcUnsubscriptionRequest)) {
+            return false;
+        }
+        PlcUnsubscriptionRequest that = (PlcUnsubscriptionRequest) o;
+        return Objects.equals(requestItems, that.requestItems);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(requestItems);
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponse.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponse.java
index f75415a..7c56268 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponse.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponse.java
@@ -19,4 +19,8 @@ under the License.
 */
 public class PlcUnsubscriptionResponse implements PlcMessage {
 
+    @Override
+    public String toString() {
+        return "PlcUnsubscriptionResponse{}";
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java
index 4176f91..ed09dae 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java
@@ -100,4 +100,9 @@ public class PlcWriteRequest extends 
PlcRequest<WriteRequestItem<?>> {
         }
 
     }
+
+    @Override
+    public String toString() {
+        return "PlcWriteRequest{} " + super.toString();
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteResponse.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteResponse.java
index 39da986..6535fca 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteResponse.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteResponse.java
@@ -39,4 +39,9 @@ public class PlcWriteResponse extends 
PlcResponse<PlcWriteRequest, WriteResponse
     public <T> Optional<WriteResponseItem<T>> getValue(WriteRequestItem<T> 
item) {
         return (Optional) super.getValue(item);
     }
+
+    @Override
+    public String toString() {
+        return "PlcWriteResponse{} " + super.toString();
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java
index c88e1d9..d4a7c73 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java
@@ -53,6 +53,13 @@ public class ReadRequestItem<T> extends RequestItem<T> {
     }
 
     @Override
+    public String toString() {
+        return "ReadRequestItem{" +
+            "size=" + size +
+            "} " + super.toString();
+    }
+
+    @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java
index 789d832..1e8e601 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java
@@ -55,6 +55,13 @@ public class ReadResponseItem<T> extends 
ResponseItem<ReadRequestItem<T>> {
     }
 
     @Override
+    public String toString() {
+        return "ReadResponseItem{" +
+            "values=" + values +
+            "} " + super.toString();
+    }
+
+    @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionEventItem.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionEventItem.java
index 49a0200..60d95dc 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionEventItem.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionEventItem.java
@@ -20,6 +20,7 @@ package org.apache.plc4x.java.api.messages.items;
 
 import java.util.Calendar;
 import java.util.List;
+import java.util.Objects;
 
 public class SubscriptionEventItem<T> {
 
@@ -45,4 +46,31 @@ public class SubscriptionEventItem<T> {
         return values;
     }
 
+    @Override
+    public String toString() {
+        return "SubscriptionEventItem{" +
+            "subscriptionRequestItem=" + subscriptionRequestItem +
+            ", timestamp=" + timestamp +
+            ", values=" + values +
+            '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof SubscriptionEventItem)) {
+            return false;
+        }
+        SubscriptionEventItem<?> that = (SubscriptionEventItem<?>) o;
+        return Objects.equals(subscriptionRequestItem, 
that.subscriptionRequestItem) &&
+            Objects.equals(timestamp, that.timestamp) &&
+            Objects.equals(values, that.values);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(subscriptionRequestItem, timestamp, values);
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestChangeOfStateItem.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestChangeOfStateItem.java
index 57db70f..8e4b0eb 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestChangeOfStateItem.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestChangeOfStateItem.java
@@ -29,4 +29,8 @@ public class SubscriptionRequestChangeOfStateItem extends 
SubscriptionRequestIte
         super(datatype, address, SubscriptionType.CHANGE_OF_STATE, consumer);
     }
 
+    @Override
+    public String toString() {
+        return "SubscriptionRequestChangeOfStateItem{} " + super.toString();
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestEventItem.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestEventItem.java
index 8ed69c5..e842d88 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestEventItem.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestEventItem.java
@@ -29,4 +29,8 @@ public class SubscriptionRequestEventItem extends 
SubscriptionRequestItem {
         super(datatype, address, SubscriptionType.EVENT, consumer);
     }
 
+    @Override
+    public String toString() {
+        return "SubscriptionRequestEventItem{} " + super.toString();
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java
index 9aba923..086bcea 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java
@@ -44,6 +44,13 @@ public class WriteRequestItem<T> extends RequestItem<T> {
     }
 
     @Override
+    public String toString() {
+        return "WriteRequestItem{" +
+            "values=" + values +
+            "} " + super.toString();
+    }
+
+    @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java
index 9928b7d..2b6aa99 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java
@@ -26,4 +26,8 @@ public class WriteResponseItem<T> extends 
ResponseItem<WriteRequestItem<T>> {
         super(requestItem, responseCode);
     }
 
+    @Override
+    public String toString() {
+        return "WriteResponseItem{} " + super.toString();
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadRequest.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadRequest.java
index 3c3d20d..ce73974 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadRequest.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadRequest.java
@@ -98,6 +98,13 @@ public class TypeSafePlcReadRequest<T> extends 
PlcReadRequest {
     }
 
     @Override
+    public String toString() {
+        return "TypeSafePlcReadRequest{" +
+            "dataType=" + dataType +
+            "} " + super.toString();
+    }
+
+    @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadResponse.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadResponse.java
index d6ed804..393ac00 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadResponse.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadResponse.java
@@ -99,4 +99,9 @@ public class TypeSafePlcReadResponse<T> extends 
PlcReadResponse {
             }
         }
     }
+
+    @Override
+    public String toString() {
+        return "TypeSafePlcReadResponse{} " + super.toString();
+    }
 }
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteRequest.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteRequest.java
index 870d28a..24eb1c2 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteRequest.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteRequest.java
@@ -85,6 +85,13 @@ public class TypeSafePlcWriteRequest<T> extends 
PlcWriteRequest {
     }
 
     @Override
+    public String toString() {
+        return "TypeSafePlcWriteRequest{" +
+            "dataType=" + dataType +
+            "} " + super.toString();
+    }
+
+    @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteResponse.java
 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteResponse.java
index e7d60a2..af4ee80 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteResponse.java
+++ 
b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteResponse.java
@@ -75,4 +75,9 @@ public class TypeSafePlcWriteResponse<T> extends 
PlcWriteResponse {
         }
         return new TypeSafePlcWriteResponse(new 
TypeSafePlcWriteRequest(referenceType, plcWriteResponse.getRequest()), 
plcWriteResponse.getResponseItems());
     }
+
+    @Override
+    public String toString() {
+        return "TypeSafePlcWriteResponse{} " + super.toString();
+    }
 }
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/APIMessageTests.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/APIMessageTests.java
index 6c44f65..afeeef2 100644
--- 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/APIMessageTests.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/APIMessageTests.java
@@ -109,6 +109,21 @@ public class APIMessageTests {
     }
 
     @Test
+    public void plcProprietaryRequest() {
+        Object customMessage = new Object();
+        PlcProprietaryRequest<Object> plcProprietaryRequest = new 
PlcProprietaryRequest<>(customMessage);
+        assertThat("Unexpected request type", 
plcProprietaryRequest.getRequest(), equalTo(customMessage));
+    }
+
+    @Test
+    public void plcProprietaryResponse() {
+        Object customMessage = new Object();
+        Object customMessageResponse = new Object();
+        PlcProprietaryResponse<Object> plcProprietaryResponse = new 
PlcProprietaryResponse<>(new PlcProprietaryRequest<>(customMessage), 
customMessageResponse);
+        assertThat("Unexpected response type", 
plcProprietaryResponse.getResponse(), equalTo(customMessageResponse));
+    }
+
+    @Test
     @Category(FastTests.class)
     public void plcReadRequestEmpty() {
         PlcReadRequest plcReadRequest = new PlcReadRequest();
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadResponseTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcProprietaryRequestTest.java
similarity index 53%
copy from 
plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadResponseTest.java
copy to 
plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcProprietaryRequestTest.java
index 14eda87..2beedc0 100644
--- 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadResponseTest.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcProprietaryRequestTest.java
@@ -6,9 +6,9 @@
  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
@@ -18,28 +18,27 @@
  */
 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.junit.Test;
 
-import java.util.Collections;
-import java.util.List;
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
 
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
-
-public class PlcReadResponseTest {
+public class PlcProprietaryRequestTest {
 
     @Test
-    public void constuctor() {
-        new PlcReadResponse(mock(PlcReadRequest.class), 
mock(ReadResponseItem.class));
-        new PlcReadResponse(mock(PlcReadRequest.class), (List) 
Collections.singletonList(mock(ReadResponseItem.class)));
+    public void constructor() {
+        new PlcProprietaryRequest<>(new Object());
     }
 
     @Test
-    public void getValue() {
-        new PlcReadResponse(mock(PlcReadRequest.class), (List) 
Collections.singletonList(mock(ReadResponseItem.class, RETURNS_DEEP_STUBS)))
-            .getValue(mock(ReadRequestItem.class));
+    public void equalsAndHashCode() {
+        Object object = new Object();
+        PlcProprietaryRequest SUT = new PlcProprietaryRequest<>(object);
+        PlcProprietaryRequest other = new PlcProprietaryRequest<>(object);
+        assertThat(SUT.hashCode(), equalTo(other.hashCode()));
+        assertThat(SUT.equals(other), equalTo(true));
+        assertThat(SUT.equals(new Object()), equalTo(false));
+        assertEquals(SUT, SUT);
     }
-
 }
\ No newline at end of file
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponseTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponseTest.java
new file mode 100644
index 0000000..d62c87e
--- /dev/null
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponseTest.java
@@ -0,0 +1,53 @@
+/*
+ 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.hamcrest.core.IsEqual;
+import org.junit.Test;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.mock;
+
+public class PlcProprietaryResponseTest {
+    @Test
+    public void constructor() {
+        new PlcProprietaryResponse<>(mock(PlcProprietaryRequest.class), new 
Object());
+    }
+
+    @Test
+    public void getValue() {
+        Object customResponse = new Object();
+        Object response = new 
PlcProprietaryResponse<>(mock(PlcProprietaryRequest.class), 
customResponse).getResponse();
+        assertThat(response, equalTo(customResponse));
+    }
+
+    @Test
+    public void equalsAndHashCode() {
+        Object customResponse = new Object();
+        PlcProprietaryRequest request = mock(PlcProprietaryRequest.class);
+        PlcProprietaryResponse SUT = new PlcProprietaryResponse<>(request, 
customResponse);
+        PlcProprietaryResponse other = new PlcProprietaryResponse<>(request, 
customResponse);
+        assertThat(SUT.hashCode(), IsEqual.equalTo(other.hashCode()));
+        assertThat(SUT.equals(other), IsEqual.equalTo(true));
+        assertThat(SUT.equals(new Object()), IsEqual.equalTo(false));
+        assertEquals(SUT, SUT);
+    }
+}
\ No newline at end of file
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadRequestTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadRequestTest.java
index 4ce45b9..9d077b9 100644
--- 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadRequestTest.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadRequestTest.java
@@ -38,7 +38,7 @@ public class PlcReadRequestTest {
     }
 
     @Test
-    public void constuctor() {
+    public void constructor() {
         new PlcReadRequest();
         new PlcReadRequest(new ReadRequestItem<>(String.class, dummyAddress));
         new PlcReadRequest(String.class, dummyAddress);
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadResponseTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadResponseTest.java
index 14eda87..244e78c 100644
--- 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadResponseTest.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcReadResponseTest.java
@@ -31,7 +31,7 @@ import static org.mockito.Mockito.mock;
 public class PlcReadResponseTest {
 
     @Test
-    public void constuctor() {
+    public void constructor() {
         new PlcReadResponse(mock(PlcReadRequest.class), 
mock(ReadResponseItem.class));
         new PlcReadResponse(mock(PlcReadRequest.class), (List) 
Collections.singletonList(mock(ReadResponseItem.class)));
     }
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcRequestContainerTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcRequestContainerTest.java
new file mode 100644
index 0000000..a3654ad
--- /dev/null
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcRequestContainerTest.java
@@ -0,0 +1,80 @@
+/*
+ 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.hamcrest.core.IsEqual;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+
+public class PlcRequestContainerTest {
+
+    private PlcRequestContainer<PlcRequest, PlcResponse> SUT;
+
+    private PlcResponse plcResponse;
+    private PlcRequest plcRequest;
+    private CompletableFuture<PlcResponse> future;
+
+    @Before
+    public void setUp() throws Exception {
+        plcResponse = mock(PlcResponse.class);
+        plcRequest = mock(PlcRequest.class);
+        future = CompletableFuture.completedFuture(plcResponse);
+        SUT = new PlcRequestContainer<>(plcRequest, future);
+    }
+
+    @Test
+    public void getRequest() {
+        PlcRequest request = SUT.getRequest();
+        assertNotNull(request);
+    }
+
+    @Test
+    public void getResponseFuture() throws Exception {
+        CompletableFuture<PlcResponse> responseFuture = 
SUT.getResponseFuture();
+        assertNotNull(responseFuture);
+        assertNotNull(responseFuture.get(1, TimeUnit.NANOSECONDS));
+    }
+
+    @Test
+    public void getParent() {
+        ProtocolMessage parent = SUT.getParent();
+        assertNull(parent);
+    }
+
+    @Test
+    public void equalsAndHashCode() {
+        PlcRequestContainer<PlcRequest, PlcResponse> other = new 
PlcRequestContainer<>(plcRequest, future);
+        assertThat(SUT.hashCode(), IsEqual.equalTo(other.hashCode()));
+        assertThat(SUT.equals(other), IsEqual.equalTo(true));
+        assertThat(SUT.equals(new Object()), IsEqual.equalTo(false));
+        assertEquals(SUT, SUT);
+    }
+
+    @Test
+    public void testToString() {
+        SUT.toString();
+    }
+
+}
\ No newline at end of file
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcRequestTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcRequestTest.java
index 84d760f..1afc642 100644
--- 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcRequestTest.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcRequestTest.java
@@ -29,6 +29,7 @@ import java.util.Optional;
 import static org.hamcrest.collection.IsEmptyCollection.empty;
 import static org.hamcrest.core.Is.is;
 import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.fail;
 import static org.mockito.Mockito.mock;
@@ -96,4 +97,13 @@ public class PlcRequestTest {
         assertThat(SUT.isEmpty(), is(true));
     }
 
+    @Test
+    public void equalsAndHashCode() {
+        PlcRequest other = new PlcRequest<RequestItem>(requestItems) {
+        };
+        assertThat(SUT.hashCode(), equalTo(other.hashCode()));
+        assertThat(SUT.equals(other), equalTo(true));
+        assertThat(SUT.equals(new Object()), equalTo(false));
+        assertEquals(SUT, SUT);
+    }
 }
\ No newline at end of file
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcResponseTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcResponseTest.java
index 7b887a3..dcca8ba 100644
--- 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcResponseTest.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcResponseTest.java
@@ -31,20 +31,22 @@ import static 
org.hamcrest.collection.IsEmptyCollection.empty;
 import static org.hamcrest.core.Is.is;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.notNullValue;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
 public class PlcResponseTest {
 
+    private PlcResponse<PlcRequest, ResponseItem, RequestItem> SUT;
+
     private List<ResponseItem> responseItems;
 
-    private PlcResponse<PlcRequest, ResponseItem, RequestItem> SUT;
+    private PlcRequest plcRequest;
 
     @Before
     public void setUp() {
         responseItems = new ArrayList<>();
-        SUT = new PlcResponse<PlcRequest, ResponseItem, 
RequestItem>(mock(PlcRequest.class), responseItems) {
+        plcRequest = mock(PlcRequest.class);
+        SUT = new PlcResponse<PlcRequest, ResponseItem, 
RequestItem>(plcRequest, responseItems) {
         };
     }
 
@@ -91,4 +93,14 @@ public class PlcResponseTest {
     public void getValue() {
         assertThat(SUT.getValue(null), equalTo(Optional.empty()));
     }
+
+    @Test
+    public void equalsAndHashCode() {
+        PlcResponse other = new PlcResponse<PlcRequest, ResponseItem, 
RequestItem>(plcRequest, responseItems) {
+        };
+        assertThat(SUT.hashCode(), equalTo(other.hashCode()));
+        assertThat(SUT.equals(other), equalTo(true));
+        assertThat(SUT.equals(new Object()), equalTo(false));
+        assertEquals(SUT, SUT);
+    }
 }
\ No newline at end of file
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionEventTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionEventTest.java
new file mode 100644
index 0000000..5403b73
--- /dev/null
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionEventTest.java
@@ -0,0 +1,59 @@
+/*
+ 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.SubscriptionEventItem;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+
+public class PlcSubscriptionEventTest {
+
+    @Test
+    public void constructor() {
+        new PlcSubscriptionEvent(mock(List.class));
+    }
+
+    @Test
+    public void getEvents() {
+        List mock = mock(List.class);
+        List<SubscriptionEventItem<?>> eventItems = new 
PlcSubscriptionEvent(mock).getEventItems();
+        assertSame(eventItems, mock);
+    }
+
+    @Test
+    public void equalsAndHashCode() {
+        List eventItems = mock(List.class);
+        PlcSubscriptionEvent thiis = new PlcSubscriptionEvent(eventItems);
+        PlcSubscriptionEvent other = new PlcSubscriptionEvent(eventItems);
+        assertThat(thiis.hashCode(), equalTo(other.hashCode()));
+        assertThat(thiis.equals(other), equalTo(true));
+        assertThat(thiis.equals(new Object()), equalTo(false));
+        assertEquals(thiis, thiis);
+    }
+
+    @Test
+    public void testToString() {
+        new PlcSubscriptionEvent(mock(List.class)).toString();
+    }
+}
\ No newline at end of file
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionResponseItem.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequestTest.java
similarity index 75%
copy from 
plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionResponseItem.java
copy to 
plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequestTest.java
index 8a7c659..d696e41 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionResponseItem.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequestTest.java
@@ -15,15 +15,15 @@
  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.items;
+ */
+package org.apache.plc4x.java.api.messages;
 
-import org.apache.plc4x.java.api.types.ResponseCode;
+import org.junit.Test;
 
-public class UnsubscriptionResponseItem {
-
-    public UnsubscriptionResponseItem(UnsubscriptionRequestItem requestItem, 
ResponseCode responseCode) {
+public class PlcSubscriptionRequestTest {
 
+    @Test
+    public void testToString() {
+        new PlcSubscriptionRequest().toString();
     }
-
-}
+}
\ No newline at end of file
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionResponseItem.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponseTest.java
similarity index 62%
copy from 
plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionResponseItem.java
copy to 
plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponseTest.java
index 8a7c659..c40edb3 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionResponseItem.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponseTest.java
@@ -15,15 +15,24 @@
  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.items;
+ */
+package org.apache.plc4x.java.api.messages;
 
-import org.apache.plc4x.java.api.types.ResponseCode;
+import org.junit.Test;
 
-public class UnsubscriptionResponseItem {
+import java.util.List;
 
-    public UnsubscriptionResponseItem(UnsubscriptionRequestItem requestItem, 
ResponseCode responseCode) {
+import static org.mockito.Mockito.mock;
 
+public class PlcSubscriptionResponseTest {
+
+    @Test
+    public void constructor() {
+        new PlcSubscriptionResponse(mock(PlcSubscriptionRequest.class), 
mock(List.class));
     }
 
-}
+    @Test
+    public void testToString() {
+        new PlcSubscriptionResponse(mock(PlcSubscriptionRequest.class), 
mock(List.class)).toString();
+    }
+}
\ No newline at end of file
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcRequestTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequestTest.java
similarity index 50%
copy from 
plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcRequestTest.java
copy to 
plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequestTest.java
index 84d760f..f384666 100644
--- 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcRequestTest.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequestTest.java
@@ -18,67 +18,41 @@
  */
 package org.apache.plc4x.java.api.messages;
 
-import org.apache.plc4x.java.api.messages.items.RequestItem;
+import org.apache.plc4x.java.api.messages.items.UnsubscriptionRequestItem;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Optional;
 
 import static org.hamcrest.collection.IsEmptyCollection.empty;
-import static org.hamcrest.core.Is.is;
 import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
 import static org.mockito.Mockito.mock;
 
-public class PlcRequestTest {
+public class PlcUnsubscriptionRequestTest {
 
-    private List<RequestItem> requestItems;
-
-    private PlcRequest<RequestItem> SUT;
+    private PlcUnsubscriptionRequest SUT;
 
     @Before
     public void setUp() {
-        requestItems = new ArrayList<>();
-        SUT = new PlcRequest<RequestItem>(requestItems) {
-        };
+        SUT = new PlcUnsubscriptionRequest();
     }
 
     @Test
-    public void addItem() {
-        SUT.addItem(mock(RequestItem.class));
+    public void constructor() {
+        new PlcUnsubscriptionRequest();
+        new PlcUnsubscriptionRequest(mock(List.class));
     }
 
     @Test
-    public void getRequestItems() {
-        assertThat(SUT.getRequestItems(), empty());
-    }
-
-    @Test
-    public void getRequestItem() {
-        assertThat(SUT.getRequestItem(), equalTo(Optional.empty()));
-        requestItems.add(mock(RequestItem.class));
-        assertThat(SUT.getRequestItem().isPresent(), is(true));
-        requestItems.add(mock(RequestItem.class));
-        try {
-            SUT.getRequestItem();
-            fail("Too many items in PlcRequest should have failed.");
-        } catch (IllegalStateException e) {
-            // expected
-        }
+    public void addItem() {
+        SUT.addItem(mock(UnsubscriptionRequestItem.class));
     }
 
     @Test
-    public void setRequestItem() {
-        SUT.setRequestItem(mock(RequestItem.class));
-        requestItems.add(mock(RequestItem.class));
-        try {
-            SUT.setRequestItem(mock(RequestItem.class));
-        } catch (IllegalStateException e) {
-            // expected
-        }
+    public void getRequestItems() {
+        assertThat(SUT.getRequestItems(), empty());
     }
 
     @Test
@@ -87,13 +61,16 @@ public class PlcRequestTest {
     }
 
     @Test
-    public void isMultiValue() {
-        assertThat(SUT.isMultiValue(), is(false));
+    public void equalsAndHashCode() {
+        PlcUnsubscriptionRequest other = new PlcUnsubscriptionRequest();
+        assertThat(SUT.hashCode(), equalTo(other.hashCode()));
+        assertThat(SUT.equals(other), equalTo(true));
+        assertThat(SUT.equals(new Object()), equalTo(false));
+        assertEquals(SUT, SUT);
     }
 
     @Test
-    public void isEmpty() {
-        assertThat(SUT.isEmpty(), is(true));
+    public void testToString() {
+        SUT.toString();
     }
-
 }
\ No newline at end of file
diff --git 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionResponseItem.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponseTest.java
similarity index 75%
rename from 
plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionResponseItem.java
rename to 
plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponseTest.java
index 8a7c659..a3a5e3a 100644
--- 
a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionResponseItem.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponseTest.java
@@ -15,15 +15,14 @@
  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.items;
+ */
+package org.apache.plc4x.java.api.messages;
 
-import org.apache.plc4x.java.api.types.ResponseCode;
-
-public class UnsubscriptionResponseItem {
-
-    public UnsubscriptionResponseItem(UnsubscriptionRequestItem requestItem, 
ResponseCode responseCode) {
+import org.junit.Test;
 
+public class PlcUnsubscriptionResponseTest {
+    @Test
+    public void testToString() {
+        new PlcUnsubscriptionResponse().toString();
     }
-
-}
+}
\ No newline at end of file
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcWriteRequestTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcWriteRequestTest.java
index 4680858..ea510d9 100644
--- 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcWriteRequestTest.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcWriteRequestTest.java
@@ -106,4 +106,8 @@ public class PlcWriteRequestTest {
         }
     }
 
+    @Test
+    public void testToString() {
+        new PlcWriteRequest().toString();
+    }
 }
\ No newline at end of file
diff --git 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcWriteResponseTest.java
 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcWriteResponseTest.java
index ca01800..04b1ae4 100644
--- 
a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcWriteResponseTest.java
+++ 
b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcWriteResponseTest.java
@@ -31,7 +31,7 @@ import static org.mockito.Mockito.mock;
 public class PlcWriteResponseTest {
 
     @Test
-    public void constuctor() {
+    public void constructor() {
         new PlcWriteResponse(mock(PlcWriteRequest.class), 
mock(WriteResponseItem.class));
         new PlcWriteResponse(mock(PlcWriteRequest.class), (List) 
Collections.singletonList(mock(WriteResponseItem.class)));
     }
@@ -42,4 +42,8 @@ public class PlcWriteResponseTest {
             .getValue(mock(WriteRequestItem.class));
     }
 
+    @Test
+    public void testToString() {
+        new PlcWriteResponse(mock(PlcWriteRequest.class), 
mock(WriteResponseItem.class)).toString();
+    }
 }
\ No newline at end of file

Reply via email to