You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2018/06/13 15:07:44 UTC

[incubator-plc4x] branch master updated (864bd96 -> 8b8a938)

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

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


    from 864bd96  fixed some sonar bugs (equals, hashcode, serializable)
     new 96eaca6  fixed sonar warning about not serializable fields
     new 8b8a938  fixed some bugs while working on coverage

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../api/commands/AdsDeviceNotificationRequest.java |  2 +-
 .../java/ads/api/commands/AdsReadResponse.java     | 17 +++++++----
 .../java/ads/api/commands/AdsReadWriteRequest.java |  2 +-
 .../ads/api/commands/AdsReadWriteResponse.java     |  2 +-
 .../ads/api/commands/AdsWriteControlRequest.java   |  2 +-
 .../java/ads/api/commands/AdsWriteRequest.java     |  2 +-
 .../java/ads/api/commands/UnknownCommand.java      | 11 ++++---
 .../api/commands/types/AdsNotificationSample.java  |  2 +-
 .../java/ads/api/commands/types/AdsState.java      |  2 +-
 .../plc4x/java/ads/api/generic/AmsHeader.java      | 34 ++++++++++++++--------
 .../java/ads/api/serial/types/FragmentNumber.java  | 12 ++++++++
 .../java/ads/api/serial/types/ReceiverAddress.java | 12 ++++++++
 .../ads/api/serial/types/TransmitterAddress.java   | 12 ++++++++
 .../java/ads/api/serial/types/UserDataLength.java  | 12 ++++++++
 .../types/CommandTypesFactoryMethodTest.java       | 11 +++++++
 .../ads/api/generic/GenericFactoryMethodTest.java  |  6 +---
 .../java/ads/api/generic/types/AmsPortTest.java    |  9 +++++-
 .../SerialFactoryMethodTest.java}                  | 29 +++++++-----------
 .../types/GenericTypesFactoryMethodTest.java       | 22 +++++++-------
 .../TcpFactoryMethodTest.java}                     |  8 ++---
 .../types/GenericTypesFactoryMethodTest.java       | 15 ++++------
 21 files changed, 146 insertions(+), 78 deletions(-)
 copy plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/{generic/GenericFactoryMethodTest.java => serial/SerialFactoryMethodTest.java} (76%)
 copy plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/{generic => serial}/types/GenericTypesFactoryMethodTest.java (85%)
 copy plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/{generic/GenericFactoryMethodTest.java => tcp/TcpFactoryMethodTest.java} (92%)
 copy plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/{generic => tcp}/types/GenericTypesFactoryMethodTest.java (90%)

-- 
To stop receiving notification emails like this one, please contact
sruehl@apache.org.

[incubator-plc4x] 01/02: fixed sonar warning about not serializable fields

Posted by sr...@apache.org.
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

commit 96eaca6cff19802bc92c39ae6cfa1fd74baec436
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Jun 13 17:04:07 2018 +0200

    fixed sonar warning about not serializable fields
---
 .../ads/api/commands/AdsDeviceNotificationRequest.java  |  2 +-
 .../plc4x/java/ads/api/commands/AdsReadResponse.java    | 17 +++++++++++------
 .../java/ads/api/commands/AdsReadWriteRequest.java      |  2 +-
 .../java/ads/api/commands/AdsReadWriteResponse.java     |  2 +-
 .../java/ads/api/commands/AdsWriteControlRequest.java   |  2 +-
 .../plc4x/java/ads/api/commands/AdsWriteRequest.java    |  2 +-
 .../plc4x/java/ads/api/commands/UnknownCommand.java     | 11 +++++++----
 .../ads/api/commands/types/AdsNotificationSample.java   |  2 +-
 8 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsDeviceNotificationRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsDeviceNotificationRequest.java
index 583673c..e502777 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsDeviceNotificationRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsDeviceNotificationRequest.java
@@ -55,7 +55,7 @@ public class AdsDeviceNotificationRequest extends AdsAbstractRequest {
      */
     private final List<AdsStampHeader> adsStampHeaders;
 
-    private final LengthSupplier lengthSupplier;
+    private final transient LengthSupplier lengthSupplier;
 
     private AdsDeviceNotificationRequest(AmsHeader amsHeader, Length length, Stamps stamps, List<AdsStampHeader> adsStampHeaders) {
         super(amsHeader);
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadResponse.java
index 69f2a2e..3698b03 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadResponse.java
@@ -50,7 +50,7 @@ public class AdsReadResponse extends AdsAbstractResponse {
      */
     private final Data data;
 
-    private final LengthSupplier lengthSupplier;
+    private final transient LengthSupplier lengthSupplier;
 
     private AdsReadResponse(AmsHeader amsHeader, Result result, Length length, Data data) {
         super(amsHeader);
@@ -95,19 +95,24 @@ public class AdsReadResponse extends AdsAbstractResponse {
 
     @Override
     public boolean equals(Object o) {
-        if (this == o)
+        if (this == o) {
             return true;
-        if (!(o instanceof AdsReadResponse))
+        }
+        if (!(o instanceof AdsReadResponse)) {
             return false;
-        if (!super.equals(o))
+        }
+        if (!super.equals(o)) {
             return false;
+        }
 
         AdsReadResponse that = (AdsReadResponse) o;
 
-        if (!result.equals(that.result))
+        if (!result.equals(that.result)) {
             return false;
-        if (!getLength().equals(that.getLength()))
+        }
+        if (!getLength().equals(that.getLength())) {
             return false;
+        }
 
         return data.equals(that.data);
     }
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadWriteRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadWriteRequest.java
index c007fdf..ccd73de 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadWriteRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadWriteRequest.java
@@ -58,7 +58,7 @@ public class AdsReadWriteRequest extends AdsAbstractRequest {
      */
     private final Data data;
 
-    private final LengthSupplier writeLengthSupplier;
+    private final transient LengthSupplier writeLengthSupplier;
 
     private AdsReadWriteRequest(AmsHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, ReadLength readLength, WriteLength writeLength, Data data) {
         super(amsHeader);
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadWriteResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadWriteResponse.java
index 3d5cfcf..fdc79e5 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadWriteResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadWriteResponse.java
@@ -52,7 +52,7 @@ public class AdsReadWriteResponse extends AdsAbstractResponse {
      */
     private final Data data;
 
-    private final LengthSupplier lengthSupplier;
+    private final transient LengthSupplier lengthSupplier;
 
     private AdsReadWriteResponse(AmsHeader amsHeader, Result result, Length length, Data data) {
         super(amsHeader);
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsWriteControlRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsWriteControlRequest.java
index 2ec8dbe..31100b8 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsWriteControlRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsWriteControlRequest.java
@@ -57,7 +57,7 @@ public class AdsWriteControlRequest extends AdsAbstractRequest {
      */
     private final Data data;
 
-    private final LengthSupplier lengthSupplier;
+    private final transient LengthSupplier lengthSupplier;
 
     private AdsWriteControlRequest(AmsHeader amsHeader, AdsState adsState, DeviceState deviceState, Length length, Data data) {
         super(amsHeader);
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsWriteRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsWriteRequest.java
index c1e108b..1f431f3 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsWriteRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsWriteRequest.java
@@ -55,7 +55,7 @@ public class AdsWriteRequest extends AdsAbstractRequest {
      */
     private final Data data;
 
-    private final LengthSupplier lengthSupplier;
+    private final transient LengthSupplier lengthSupplier;
 
     private AdsWriteRequest(AmsHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length, Data data) {
         super(amsHeader);
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/UnknownCommand.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/UnknownCommand.java
index 5172d46..df395dc 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/UnknownCommand.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/UnknownCommand.java
@@ -32,7 +32,7 @@ import static java.util.Objects.requireNonNull;
 @AdsCommandType(Command.UNKNOWN)
 public class UnknownCommand extends AmsPacket {
 
-    private final ByteBuf remainingBytes;
+    private transient final ByteBuf remainingBytes;
 
     private UnknownCommand(AmsHeader amsHeader, ByteBuf remainingBytes) {
         super(amsHeader);
@@ -59,12 +59,15 @@ public class UnknownCommand extends AmsPacket {
 
     @Override
     public boolean equals(Object o) {
-        if (this == o)
+        if (this == o) {
             return true;
-        if (!(o instanceof UnknownCommand))
+        }
+        if (!(o instanceof UnknownCommand)) {
             return false;
-        if (!super.equals(o))
+        }
+        if (!super.equals(o)) {
             return false;
+        }
 
         UnknownCommand that = (UnknownCommand) o;
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsNotificationSample.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsNotificationSample.java
index b4040cb..c963466 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsNotificationSample.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsNotificationSample.java
@@ -39,7 +39,7 @@ public class AdsNotificationSample implements ByteReadable {
      */
     private final Data data;
 
-    private final LengthSupplier lengthSupplier;
+    private final transient LengthSupplier lengthSupplier;
 
     private AdsNotificationSample(NotificationHandle notificationHandle, Data data) {
         this.notificationHandle = requireNonNull(notificationHandle);

-- 
To stop receiving notification emails like this one, please contact
sruehl@apache.org.

[incubator-plc4x] 02/02: fixed some bugs while working on coverage

Posted by sr...@apache.org.
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

commit 8b8a9388d7e9e0caefc6c42c57932c871ac27ad6
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Jun 13 17:07:35 2018 +0200

    fixed some bugs while working on coverage
---
 .../java/ads/api/commands/types/AdsState.java      |  2 +-
 .../plc4x/java/ads/api/generic/AmsHeader.java      | 34 +++++---
 .../java/ads/api/serial/types/FragmentNumber.java  | 12 +++
 .../java/ads/api/serial/types/ReceiverAddress.java | 12 +++
 .../ads/api/serial/types/TransmitterAddress.java   | 12 +++
 .../java/ads/api/serial/types/UserDataLength.java  | 12 +++
 .../types/CommandTypesFactoryMethodTest.java       | 11 +++
 .../ads/api/generic/GenericFactoryMethodTest.java  |  6 +-
 .../java/ads/api/generic/types/AmsPortTest.java    |  9 ++-
 .../SerialFactoryMethodTest.java}                  | 29 +++----
 .../types/GenericTypesFactoryMethodTest.java       | 92 ++++++++++++++++++++++
 .../TcpFactoryMethodTest.java}                     |  8 +-
 .../tcp/types/GenericTypesFactoryMethodTest.java   | 87 ++++++++++++++++++++
 13 files changed, 283 insertions(+), 43 deletions(-)

diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsState.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsState.java
index 2ddeec7..dd95fb0 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsState.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsState.java
@@ -80,6 +80,6 @@ public class AdsState extends UnsignedShortLEByteValue {
         public static final AdsState ADSSTATE_STOPPING = AdsState.of(17);
         public static final AdsState ADSSTATE_INCOMPATIBLE = AdsState.of(18);
         public static final AdsState ADSSTATE_EXCEPTION = AdsState.of(19);
-        public static final AdsState ADSSTATE_MAXSTATES = AdsState.of(Integer.MAX_VALUE);
+        public static final AdsState ADSSTATE_MAXSTATES = AdsState.of(65535);
     }
 }
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AmsHeader.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AmsHeader.java
index 84fe1bf..26f642e 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AmsHeader.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AmsHeader.java
@@ -68,7 +68,7 @@ public class AmsHeader implements ByteReadable {
      */
     private final Invoke invokeId;
 
-    private final LengthSupplier dataLengthSupplier;
+    private final transient LengthSupplier dataLengthSupplier;
 
     private AmsHeader(AmsNetId targetAmsNetId, AmsPort targetAmsPort, AmsNetId sourceAmsNetId, AmsPort sourceAmsPort, Command commandId, State stateFlags, DataLength dataLength, AmsError code, Invoke invokeId) {
         this.targetAmsNetId = requireNonNull(targetAmsNetId);
@@ -157,30 +157,40 @@ public class AmsHeader implements ByteReadable {
 
     @Override
     public boolean equals(Object o) {
-        if (this == o)
+        if (this == o) {
             return true;
-        if (!(o instanceof AmsHeader))
+        }
+        if (!(o instanceof AmsHeader)) {
             return false;
+        }
 
         AmsHeader amsHeader = (AmsHeader) o;
 
-        if (!targetAmsNetId.equals(amsHeader.targetAmsNetId))
+        if (!targetAmsNetId.equals(amsHeader.targetAmsNetId)) {
             return false;
-        if (!targetAmsPort.equals(amsHeader.targetAmsPort))
+        }
+        if (!targetAmsPort.equals(amsHeader.targetAmsPort)) {
             return false;
-        if (!sourceAmsNetId.equals(amsHeader.sourceAmsNetId))
+        }
+        if (!sourceAmsNetId.equals(amsHeader.sourceAmsNetId)) {
             return false;
-        if (!sourceAmsPort.equals(amsHeader.sourceAmsPort))
+        }
+        if (!sourceAmsPort.equals(amsHeader.sourceAmsPort)) {
             return false;
-        if (commandId != amsHeader.commandId)
+        }
+        if (commandId != amsHeader.commandId) {
             return false;
-        if (!stateFlags.equals(amsHeader.stateFlags))
+        }
+        if (!stateFlags.equals(amsHeader.stateFlags)) {
             return false;
-        if (!code.equals(amsHeader.code))
+        }
+        if (!code.equals(amsHeader.code)) {
             return false;
-        if (!invokeId.equals(amsHeader.invokeId))
+        }
+        if (!invokeId.equals(amsHeader.invokeId)) {
             return false;
-        
+        }
+
         return getDataLength().equals(((AmsHeader) o).getDataLength());
     }
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/FragmentNumber.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/FragmentNumber.java
index 6a145ca..71104fe 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/FragmentNumber.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/FragmentNumber.java
@@ -32,6 +32,10 @@ public class FragmentNumber extends ByteValue {
         super(value);
     }
 
+    private FragmentNumber(byte[] value) {
+        super(value);
+    }
+
     private FragmentNumber(ByteBuf byteBuf) {
         this(byteBuf.readByte());
     }
@@ -40,6 +44,14 @@ public class FragmentNumber extends ByteValue {
         return new FragmentNumber(value);
     }
 
+    public static FragmentNumber of(byte... value) {
+        return new FragmentNumber(value);
+    }
+
+    public static FragmentNumber of(String value) {
+        return new FragmentNumber(Byte.valueOf(value));
+    }
+
     public static FragmentNumber of(ByteBuf byteBuf) {
         return new FragmentNumber(byteBuf);
     }
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/ReceiverAddress.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/ReceiverAddress.java
index b6ec0aa..459d00f 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/ReceiverAddress.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/ReceiverAddress.java
@@ -34,6 +34,10 @@ public class ReceiverAddress extends ByteValue {
         super(value);
     }
 
+    private ReceiverAddress(byte[] value) {
+        super(value);
+    }
+
     private ReceiverAddress(ByteBuf byteBuf) {
         this(byteBuf.readByte());
     }
@@ -42,6 +46,14 @@ public class ReceiverAddress extends ByteValue {
         return new ReceiverAddress(value);
     }
 
+    public static ReceiverAddress of(byte... value) {
+        return new ReceiverAddress(value);
+    }
+
+    public static ReceiverAddress of(String value) {
+        return new ReceiverAddress(Byte.valueOf(value));
+    }
+
     public static ReceiverAddress of(ByteBuf byteBuf) {
         return new ReceiverAddress(byteBuf);
     }
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/TransmitterAddress.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/TransmitterAddress.java
index f447b76..09b3de7 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/TransmitterAddress.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/TransmitterAddress.java
@@ -34,6 +34,10 @@ public class TransmitterAddress extends ByteValue {
         super(value);
     }
 
+    private TransmitterAddress(byte[] value) {
+        super(value);
+    }
+
     private TransmitterAddress(ByteBuf byteBuf) {
         this(byteBuf.readByte());
     }
@@ -42,6 +46,14 @@ public class TransmitterAddress extends ByteValue {
         return new TransmitterAddress(value);
     }
 
+    public static TransmitterAddress of(byte... value) {
+        return new TransmitterAddress(value);
+    }
+
+    public static TransmitterAddress of(String value) {
+        return new TransmitterAddress(Byte.valueOf(value));
+    }
+
     public static TransmitterAddress of(ByteBuf byteBuf) {
         return new TransmitterAddress(byteBuf);
     }
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/UserDataLength.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/UserDataLength.java
index e432885..7516d1c 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/UserDataLength.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/UserDataLength.java
@@ -32,6 +32,10 @@ public class UserDataLength extends ByteValue {
         super(value);
     }
 
+    private UserDataLength(byte[] value) {
+        super(value);
+    }
+
     private UserDataLength(ByteBuf byteBuf) {
         this(byteBuf.readByte());
     }
@@ -40,6 +44,14 @@ public class UserDataLength extends ByteValue {
         return new UserDataLength(value);
     }
 
+    public static UserDataLength of(byte... value) {
+        return new UserDataLength(value);
+    }
+
+    public static UserDataLength of(String value) {
+        return new UserDataLength(Byte.valueOf(value));
+    }
+
     public static UserDataLength of(ByteBuf byteBuf) {
         return new UserDataLength(byteBuf);
     }
diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/CommandTypesFactoryMethodTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/CommandTypesFactoryMethodTest.java
index 2af1c52..01a3ab0 100644
--- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/CommandTypesFactoryMethodTest.java
+++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/CommandTypesFactoryMethodTest.java
@@ -36,6 +36,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assume.assumeThat;
 
 @RunWith(Parameterized.class)
@@ -48,6 +49,7 @@ public class CommandTypesFactoryMethodTest {
     public static Collection<Object[]> data() {
         return Stream.of(
             AdsReturnCode.class,
+            AdsStampHeader.class,
             AdsState.class,
             CycleTime.class,
             Data.class,
@@ -73,6 +75,12 @@ public class CommandTypesFactoryMethodTest {
     }
 
     @Test
+    public void innerReservedClasses() {
+        assertNotNull(IndexGroup.SystemServiceGroups.SYSTEMSERVICE_CHANGENETID);
+        assertNotNull(AdsState.DefinedValues.ADSSTATE_CONFIG);
+    }
+
+    @Test
     public void testOfInt() throws Exception {
         assumeThat(clazz, instanceOf(UnsignedShortLEByteValue.class));
         Method ofMethod = clazz.getDeclaredMethod("of", int.class);
@@ -88,12 +96,14 @@ public class CommandTypesFactoryMethodTest {
 
     @Test
     public void testOfString() throws Exception {
+        assumeThat(clazz, not(AdsStampHeader.class));
         Method ofMethod = clazz.getDeclaredMethod("of", String.class);
         ofMethod.invoke(null, clazz != AdsReturnCode.class ? "1" : "ADS_CODE_0");
     }
 
     @Test
     public void testGetter() throws Exception {
+        assumeThat(clazz, not(AdsStampHeader.class));
         List<Method> getters = Arrays
             .stream(clazz.getDeclaredMethods())
             .filter(method -> (
@@ -135,6 +145,7 @@ public class CommandTypesFactoryMethodTest {
 
     @Test
     public void testOfBytes() throws Exception {
+        assumeThat(clazz, not(AdsStampHeader.class));
         assumeThat(clazz, not(Data.class));
         assumeThat(clazz, not(AdsReturnCode.class));
         Field num_bytes_field = clazz.getDeclaredField("NUM_BYTES");
diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java
index 9c554ee..a763a25 100644
--- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java
+++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java
@@ -19,8 +19,6 @@
 package org.apache.plc4x.java.ads.api.generic;
 
 import org.apache.plc4x.java.ads.api.generic.types.Command;
-import org.apache.plc4x.java.ads.api.tcp.AmsTCPPacket;
-import org.apache.plc4x.java.ads.api.tcp.AmsTcpHeader;
 import org.apache.plc4x.java.ads.api.util.LengthSupplier;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -49,9 +47,7 @@ public class GenericFactoryMethodTest {
     public static Collection<Object[]> data() {
         return Stream.of(
             AdsData.class,
-            AmsHeader.class,
-            AmsTcpHeader.class,
-            AmsTCPPacket.class
+            AmsHeader.class
         ).map(clazz -> new Object[]{clazz}).collect(Collectors.toList());
     }
 
diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/AmsPortTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/AmsPortTest.java
index 43164b8..8f61aa7 100644
--- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/AmsPortTest.java
+++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/AmsPortTest.java
@@ -23,6 +23,7 @@ import org.junit.Test;
 
 import static org.apache.plc4x.java.ads.util.Junit5Backport.assertThrows;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
 
 public class AmsPortTest {
@@ -30,6 +31,12 @@ public class AmsPortTest {
     private final byte NULL_BYTE = 0x0;
 
     @Test
+    public void reservedPorts() {
+        // Initialize subclass
+        assertNotNull(AmsPort.ReservedPorts.logger);
+    }
+
+    @Test
     public void ofBytes() {
         assertEquals("0", AmsPort.of(NULL_BYTE, NULL_BYTE).toString());
         assertThrows(IllegalArgumentException.class, () -> AmsPort.of(NULL_BYTE, NULL_BYTE, NULL_BYTE));
@@ -52,7 +59,7 @@ public class AmsPortTest {
     public void noHex() {
         AmsPort.of("0x0100");
     }
-    
+
     @Test
     public void ofString() {
         assertByte(AmsPort.of("1"), "0x0100");
diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/serial/SerialFactoryMethodTest.java
similarity index 76%
copy from plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java
copy to plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/serial/SerialFactoryMethodTest.java
index 9c554ee..267812a 100644
--- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java
+++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/serial/SerialFactoryMethodTest.java
@@ -16,12 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.api.generic;
+package org.apache.plc4x.java.ads.api.serial;
 
-import org.apache.plc4x.java.ads.api.generic.types.Command;
-import org.apache.plc4x.java.ads.api.tcp.AmsTCPPacket;
-import org.apache.plc4x.java.ads.api.tcp.AmsTcpHeader;
-import org.apache.plc4x.java.ads.api.util.LengthSupplier;
+import org.apache.plc4x.java.ads.api.util.ByteReadable;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -36,11 +33,10 @@ import java.util.stream.Stream;
 
 import static org.hamcrest.Matchers.*;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.*;
 
 @RunWith(Parameterized.class)
-public class GenericFactoryMethodTest {
+public class SerialFactoryMethodTest {
 
     @Parameterized.Parameter
     public Class<?> clazz;
@@ -48,10 +44,9 @@ public class GenericFactoryMethodTest {
     @Parameterized.Parameters(name = "{index} {0}")
     public static Collection<Object[]> data() {
         return Stream.of(
-            AdsData.class,
-            AmsHeader.class,
-            AmsTcpHeader.class,
-            AmsTCPPacket.class
+            AmsSerialAcknowledgeFrame.class,
+            AmsSerialFrame.class,
+            AmsSerialResetFrame.class
         ).map(clazz -> new Object[]{clazz}).collect(Collectors.toList());
     }
 
@@ -69,12 +64,10 @@ public class GenericFactoryMethodTest {
                 continue;
             }
             Object invoke = method.invoke(null, Arrays.stream(method.getParameterTypes()).map(aClass -> {
-                if (aClass == Command.class) {
-                    return Command.INVALID;
-                } else if (aClass == LengthSupplier[].class) {
-                    return new LengthSupplier[]{() -> 0};
-                } else if (aClass == long.class) {
-                    return 1L;
+                if (ByteReadable.class.isAssignableFrom(aClass)) {
+                    ByteReadable mock = (ByteReadable) mock(aClass, RETURNS_DEEP_STUBS);
+                    when(mock.getBytes()).thenReturn(new byte[0]);
+                    return mock;
                 } else {
                     return mock(aClass, RETURNS_DEEP_STUBS);
                 }
diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/serial/types/GenericTypesFactoryMethodTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/serial/types/GenericTypesFactoryMethodTest.java
new file mode 100644
index 0000000..d2d8cb0
--- /dev/null
+++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/serial/types/GenericTypesFactoryMethodTest.java
@@ -0,0 +1,92 @@
+/*
+ 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.ads.api.serial.types;
+
+import org.apache.plc4x.java.ads.api.generic.types.AmsNetId;
+import org.apache.plc4x.java.ads.api.generic.types.Command;
+import org.apache.plc4x.java.ads.api.util.UnsignedIntLEByteValue;
+import org.apache.plc4x.java.ads.api.util.UnsignedShortLEByteValue;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.Matchers.not;
+import static org.junit.Assume.assumeThat;
+
+@RunWith(Parameterized.class)
+public class GenericTypesFactoryMethodTest {
+
+    @Parameterized.Parameter
+    public Class<?> clazz;
+
+    @Parameterized.Parameters(name = "{index} {0}")
+    public static Collection<Object[]> data() {
+        return Stream.of(
+            CRC.class,
+            FragmentNumber.class,
+            MagicCookie.class,
+            ReceiverAddress.class,
+            TransmitterAddress.class,
+            UserData.class,
+            UserDataLength.class
+        ).map(clazz -> new Object[]{clazz}).collect(Collectors.toList());
+    }
+
+    @Test
+    public void testOfInt() throws Exception {
+        assumeThat(clazz, instanceOf(UnsignedShortLEByteValue.class));
+        Method ofMethod = clazz.getDeclaredMethod("of", int.class);
+        ofMethod.invoke(null, 1);
+    }
+
+    @Test
+    public void testOfLong() throws Exception {
+        assumeThat(clazz, instanceOf(UnsignedIntLEByteValue.class));
+        Method ofMethod = clazz.getDeclaredMethod("of", long.class);
+        ofMethod.invoke(null, 1L);
+    }
+
+    @Test
+    public void testOfString() throws Exception {
+        Method ofMethod = clazz.getDeclaredMethod("of", String.class);
+        String testString = "1";
+        if (clazz == AmsNetId.class) {
+            testString = "1.1.1.1.1.1";
+        } else if (clazz == Command.class) {
+            testString = Command.ADS_ADD_DEVICE_NOTIFICATION.name();
+        }
+        ofMethod.invoke(null, testString);
+    }
+
+    @Test
+    public void testOfBytes() throws Exception {
+        assumeThat(clazz, not(UserData.class));
+        Field num_bytes_field = clazz.getDeclaredField("NUM_BYTES");
+        Integer numberOfBytes = (Integer) num_bytes_field.get(null);
+        Method ofMethod = clazz.getDeclaredMethod("of", byte[].class);
+        ofMethod.invoke(null, (Object) new byte[numberOfBytes]);
+    }
+}
diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/tcp/TcpFactoryMethodTest.java
similarity index 92%
copy from plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java
copy to plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/tcp/TcpFactoryMethodTest.java
index 9c554ee..7897a33 100644
--- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java
+++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/tcp/TcpFactoryMethodTest.java
@@ -16,11 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.api.generic;
+package org.apache.plc4x.java.ads.api.tcp;
 
 import org.apache.plc4x.java.ads.api.generic.types.Command;
-import org.apache.plc4x.java.ads.api.tcp.AmsTCPPacket;
-import org.apache.plc4x.java.ads.api.tcp.AmsTcpHeader;
 import org.apache.plc4x.java.ads.api.util.LengthSupplier;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -40,7 +38,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 
 @RunWith(Parameterized.class)
-public class GenericFactoryMethodTest {
+public class TcpFactoryMethodTest {
 
     @Parameterized.Parameter
     public Class<?> clazz;
@@ -48,8 +46,6 @@ public class GenericFactoryMethodTest {
     @Parameterized.Parameters(name = "{index} {0}")
     public static Collection<Object[]> data() {
         return Stream.of(
-            AdsData.class,
-            AmsHeader.class,
             AmsTcpHeader.class,
             AmsTCPPacket.class
         ).map(clazz -> new Object[]{clazz}).collect(Collectors.toList());
diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/tcp/types/GenericTypesFactoryMethodTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/tcp/types/GenericTypesFactoryMethodTest.java
new file mode 100644
index 0000000..2a49cea
--- /dev/null
+++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/tcp/types/GenericTypesFactoryMethodTest.java
@@ -0,0 +1,87 @@
+/*
+ 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.ads.api.tcp.types;
+
+import org.apache.plc4x.java.ads.api.generic.types.AmsNetId;
+import org.apache.plc4x.java.ads.api.generic.types.Command;
+import org.apache.plc4x.java.ads.api.util.UnsignedIntLEByteValue;
+import org.apache.plc4x.java.ads.api.util.UnsignedShortLEByteValue;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.Matchers.not;
+import static org.junit.Assume.assumeThat;
+
+@RunWith(Parameterized.class)
+public class GenericTypesFactoryMethodTest {
+
+    @Parameterized.Parameter
+    public Class<?> clazz;
+
+    @Parameterized.Parameters(name = "{index} {0}")
+    public static Collection<Object[]> data() {
+        return Stream.of(
+            TcpLength.class,
+            UserData.class
+        ).map(clazz -> new Object[]{clazz}).collect(Collectors.toList());
+    }
+
+    @Test
+    public void testOfInt() throws Exception {
+        assumeThat(clazz, instanceOf(UnsignedShortLEByteValue.class));
+        Method ofMethod = clazz.getDeclaredMethod("of", int.class);
+        ofMethod.invoke(null, 1);
+    }
+
+    @Test
+    public void testOfLong() throws Exception {
+        assumeThat(clazz, instanceOf(UnsignedIntLEByteValue.class));
+        Method ofMethod = clazz.getDeclaredMethod("of", long.class);
+        ofMethod.invoke(null, 1L);
+    }
+
+    @Test
+    public void testOfString() throws Exception {
+        Method ofMethod = clazz.getDeclaredMethod("of", String.class);
+        String testString = "1";
+        if (clazz == AmsNetId.class) {
+            testString = "1.1.1.1.1.1";
+        } else if (clazz == Command.class) {
+            testString = Command.ADS_ADD_DEVICE_NOTIFICATION.name();
+        }
+        ofMethod.invoke(null, testString);
+    }
+
+    @Test
+    public void testOfBytes() throws Exception {
+        assumeThat(clazz, not(UserData.class));
+        Field num_bytes_field = clazz.getDeclaredField("NUM_BYTES");
+        Integer numberOfBytes = (Integer) num_bytes_field.get(null);
+        Method ofMethod = clazz.getDeclaredMethod("of", byte[].class);
+        ofMethod.invoke(null, (Object) new byte[numberOfBytes]);
+    }
+}

-- 
To stop receiving notification emails like this one, please contact
sruehl@apache.org.