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 73cac67  added AdsConnectionFactoryTest
73cac67 is described below

commit 73cac67481010ddf17ecb84c314055f95ca80716
Author: Sebastian Rühl <sru...@apache.org>
AuthorDate: Wed May 30 11:28:01 2018 +0200

    added AdsConnectionFactoryTest
---
 .../java/ads/connection/AdsConnectionFactory.java  |   7 +
 .../ads/connection/AdsConnectionFactoryTest.java   | 164 +++++++++++++++++++++
 .../apache/plc4x/java/ads/util/Junit5Backport.java |   3 +
 .../java/base/connection/SerialChannelFactory.java |   3 +
 .../base/connection/TcpSocketChannelFactory.java   |   9 +-
 5 files changed, 185 insertions(+), 1 deletion(-)

diff --git 
a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactory.java
 
b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactory.java
index c383529..6dca925 100644
--- 
a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactory.java
+++ 
b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactory.java
@@ -22,10 +22,14 @@ import org.apache.plc4x.java.ads.api.generic.types.AmsNetId;
 import org.apache.plc4x.java.ads.api.generic.types.AmsPort;
 
 import java.net.InetAddress;
+import java.util.Objects;
 
 public class AdsConnectionFactory {
 
     public AdsTcpPlcConnection adsTcpPlcConnectionOf(InetAddress address, 
Integer port, AmsNetId targetAmsNetId, AmsPort targetAmsPort, AmsNetId 
sourceAmsNetId, AmsPort sourceAmsPort) {
+        Objects.requireNonNull(address);
+        Objects.requireNonNull(targetAmsNetId);
+        Objects.requireNonNull(targetAmsPort);
         if (sourceAmsNetId == null || sourceAmsPort == null) {
             if (port == null) {
                 return AdsTcpPlcConnection.of(address, targetAmsNetId, 
targetAmsPort);
@@ -42,6 +46,9 @@ public class AdsConnectionFactory {
     }
 
     public AdsSerialPlcConnection adsSerialPlcConnectionOf(String serialPort, 
AmsNetId targetAmsNetId, AmsPort targetAmsPort, AmsNetId sourceAmsNetId, 
AmsPort sourceAmsPort) {
+        Objects.requireNonNull(serialPort);
+        Objects.requireNonNull(targetAmsNetId);
+        Objects.requireNonNull(targetAmsPort);
         if (sourceAmsNetId == null || sourceAmsPort == null) {
             return AdsSerialPlcConnection.of(serialPort, targetAmsNetId, 
targetAmsPort);
         } else {
diff --git 
a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactoryTest.java
 
b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactoryTest.java
new file mode 100644
index 0000000..7df1c01
--- /dev/null
+++ 
b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactoryTest.java
@@ -0,0 +1,164 @@
+/*
+ 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.connection;
+
+import org.apache.commons.lang3.reflect.FieldUtils;
+import org.apache.plc4x.java.ads.api.generic.types.AmsNetId;
+import org.apache.plc4x.java.ads.api.generic.types.AmsPort;
+import org.apache.plc4x.java.base.connection.AbstractPlcConnection;
+import org.apache.plc4x.java.base.connection.SerialChannelFactory;
+import org.apache.plc4x.java.base.connection.TcpSocketChannelFactory;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import java.net.InetAddress;
+
+import static org.apache.plc4x.java.ads.util.Junit5Backport.assertThrows;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+@RunWith(MockitoJUnitRunner.class)
+public class AdsConnectionFactoryTest {
+
+    @InjectMocks
+    private AdsConnectionFactory SUT;
+
+    @Mock
+    private InetAddress inetAddress;
+
+    @Mock
+    private AmsNetId targetAmsNetId;
+
+    @Mock
+    private AmsPort targetAmsPort;
+
+    @Mock
+    private AmsNetId sourceAmsNetId;
+
+    @Mock
+    private AmsPort sourceAmsPort;
+
+    @Test
+    public void adsTcpPlcConnectionOf() throws Exception {
+        {
+            assertThrows(NullPointerException.class, () -> 
SUT.adsTcpPlcConnectionOf(null, null, null, null, null, null));
+            assertThrows(NullPointerException.class, () -> 
SUT.adsTcpPlcConnectionOf(inetAddress, null, null, null, null, null));
+            assertThrows(NullPointerException.class, () -> 
SUT.adsTcpPlcConnectionOf(inetAddress, null, targetAmsNetId, null, null, null));
+        }
+        {
+            AdsTcpPlcConnection adsTcpPlcConnection = 
SUT.adsTcpPlcConnectionOf(inetAddress, null, targetAmsNetId, targetAmsPort, 
null, null);
+            assertEquals(inetAddress, adsTcpPlcConnection.getRemoteAddress());
+            assertEquals(targetAmsNetId, 
adsTcpPlcConnection.getTargetAmsNetId());
+            assertEquals(targetAmsPort, 
adsTcpPlcConnection.getTargetAmsPort());
+            assertNotEquals(sourceAmsNetId, 
adsTcpPlcConnection.getSourceAmsNetId());
+            assertNotEquals(sourceAmsPort, 
adsTcpPlcConnection.getSourceAmsPort());
+            assertGeneratedPort(adsTcpPlcConnection);
+        }
+        {
+            AdsTcpPlcConnection adsTcpPlcConnection = 
SUT.adsTcpPlcConnectionOf(inetAddress, 13, targetAmsNetId, targetAmsPort, null, 
null);
+            assertEquals(inetAddress, adsTcpPlcConnection.getRemoteAddress());
+            assertEquals(targetAmsNetId, 
adsTcpPlcConnection.getTargetAmsNetId());
+            assertEquals(targetAmsPort, 
adsTcpPlcConnection.getTargetAmsPort());
+            assertNotEquals(sourceAmsNetId, 
adsTcpPlcConnection.getSourceAmsNetId());
+            assertNotEquals(sourceAmsPort, 
adsTcpPlcConnection.getSourceAmsPort());
+            assertPort(adsTcpPlcConnection, 13);
+        }
+        {
+            AdsTcpPlcConnection adsTcpPlcConnection = 
SUT.adsTcpPlcConnectionOf(inetAddress, null, targetAmsNetId, targetAmsPort, 
sourceAmsNetId, null);
+            assertEquals(inetAddress, adsTcpPlcConnection.getRemoteAddress());
+            assertEquals(targetAmsNetId, 
adsTcpPlcConnection.getTargetAmsNetId());
+            assertEquals(targetAmsPort, 
adsTcpPlcConnection.getTargetAmsPort());
+            assertNotEquals(sourceAmsNetId, 
adsTcpPlcConnection.getSourceAmsNetId());
+            assertNotEquals(sourceAmsPort, 
adsTcpPlcConnection.getSourceAmsPort());
+            assertGeneratedPort(adsTcpPlcConnection);
+        }
+        {
+            AdsTcpPlcConnection adsTcpPlcConnection = 
SUT.adsTcpPlcConnectionOf(inetAddress, null, targetAmsNetId, targetAmsPort, 
sourceAmsNetId, sourceAmsPort);
+            assertEquals(inetAddress, adsTcpPlcConnection.getRemoteAddress());
+            assertEquals(targetAmsNetId, 
adsTcpPlcConnection.getTargetAmsNetId());
+            assertEquals(targetAmsPort, 
adsTcpPlcConnection.getTargetAmsPort());
+            assertEquals(sourceAmsNetId, 
adsTcpPlcConnection.getSourceAmsNetId());
+            assertEquals(sourceAmsPort, 
adsTcpPlcConnection.getSourceAmsPort());
+            assertGeneratedPort(adsTcpPlcConnection);
+        }
+        {
+            AdsTcpPlcConnection adsTcpPlcConnection = 
SUT.adsTcpPlcConnectionOf(inetAddress, 13, targetAmsNetId, targetAmsPort, 
sourceAmsNetId, sourceAmsPort);
+            assertEquals(inetAddress, adsTcpPlcConnection.getRemoteAddress());
+            assertEquals(targetAmsNetId, 
adsTcpPlcConnection.getTargetAmsNetId());
+            assertEquals(targetAmsPort, 
adsTcpPlcConnection.getTargetAmsPort());
+            assertEquals(sourceAmsNetId, 
adsTcpPlcConnection.getSourceAmsNetId());
+            assertEquals(sourceAmsPort, 
adsTcpPlcConnection.getSourceAmsPort());
+            assertPort(adsTcpPlcConnection, 13);
+        }
+    }
+
+    public void assertGeneratedPort(AdsTcpPlcConnection adsTcpPlcConnection) 
throws Exception {
+        assertPort(adsTcpPlcConnection, 48898);
+    }
+
+    public void assertPort(AdsTcpPlcConnection adsTcpPlcConnection, int port) 
throws Exception {
+        TcpSocketChannelFactory channelFactory = (TcpSocketChannelFactory) 
FieldUtils
+            .getDeclaredField(AbstractPlcConnection.class, "channelFactory", 
true)
+            .get(adsTcpPlcConnection);
+        assertEquals(port, channelFactory.getPort());
+    }
+
+    @Test
+    public void adsSerialPlcConnectionOf() throws Exception {
+        {
+            assertThrows(NullPointerException.class, () -> 
SUT.adsSerialPlcConnectionOf(null, null, null, null, null));
+            assertThrows(NullPointerException.class, () -> 
SUT.adsSerialPlcConnectionOf("/dev/ttyS01", null, null, null, null));
+            assertThrows(NullPointerException.class, () -> 
SUT.adsSerialPlcConnectionOf("/dev/ttyS01", targetAmsNetId, null, null, null));
+        }
+        {
+            AdsSerialPlcConnection adsSerialPlcConnection = 
SUT.adsSerialPlcConnectionOf("/dev/ttyS01", targetAmsNetId, targetAmsPort, 
null, null);
+            assertEquals(targetAmsNetId, 
adsSerialPlcConnection.getTargetAmsNetId());
+            assertEquals(targetAmsPort, 
adsSerialPlcConnection.getTargetAmsPort());
+            assertNotEquals(sourceAmsNetId, 
adsSerialPlcConnection.getSourceAmsNetId());
+            assertNotEquals(sourceAmsPort, 
adsSerialPlcConnection.getSourceAmsPort());
+            assertPort(adsSerialPlcConnection, "/dev/ttyS01");
+        }
+        {
+            AdsSerialPlcConnection adsSerialPlcConnection = 
SUT.adsSerialPlcConnectionOf("/dev/ttyS01", targetAmsNetId, targetAmsPort, 
sourceAmsNetId, null);
+            assertEquals(targetAmsNetId, 
adsSerialPlcConnection.getTargetAmsNetId());
+            assertEquals(targetAmsPort, 
adsSerialPlcConnection.getTargetAmsPort());
+            assertNotEquals(sourceAmsNetId, 
adsSerialPlcConnection.getSourceAmsNetId());
+            assertNotEquals(sourceAmsPort, 
adsSerialPlcConnection.getSourceAmsPort());
+            assertPort(adsSerialPlcConnection, "/dev/ttyS01");
+        }
+        {
+            AdsSerialPlcConnection adsSerialPlcConnection = 
SUT.adsSerialPlcConnectionOf("/dev/ttyS01", targetAmsNetId, targetAmsPort, 
sourceAmsNetId, sourceAmsPort);
+            assertEquals(targetAmsNetId, 
adsSerialPlcConnection.getTargetAmsNetId());
+            assertEquals(targetAmsPort, 
adsSerialPlcConnection.getTargetAmsPort());
+            assertEquals(sourceAmsNetId, 
adsSerialPlcConnection.getSourceAmsNetId());
+            assertEquals(sourceAmsPort, 
adsSerialPlcConnection.getSourceAmsPort());
+            assertPort(adsSerialPlcConnection, "/dev/ttyS01");
+        }
+    }
+
+    public void assertPort(AdsSerialPlcConnection adsSerialPlcConnection, 
String serialPort) throws Exception {
+        SerialChannelFactory channelFactory = (SerialChannelFactory) FieldUtils
+            .getDeclaredField(AbstractPlcConnection.class, "channelFactory", 
true)
+            .get(adsSerialPlcConnection);
+        assertEquals(serialPort, channelFactory.getSerialPort());
+    }
+}
\ No newline at end of file
diff --git 
a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/util/Junit5Backport.java
 
b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/util/Junit5Backport.java
index 973c351..66c2347 100644
--- 
a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/util/Junit5Backport.java
+++ 
b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/util/Junit5Backport.java
@@ -18,11 +18,14 @@
  */
 package org.apache.plc4x.java.ads.util;
 
+import static org.junit.Assert.fail;
+
 public class Junit5Backport {
 
     public static void assertThrows(Class<? extends Exception> exception, 
Acceptor acceptor) {
         try {
             acceptor.accept();
+            fail("Expected exception " + exception + " not thrown.");
         } catch (Exception e) {
             if (!exception.isAssignableFrom(e.getClass())) {
                 throw new AssertionError("Unexpected exception type " + 
e.getClass() + ". Expected " + exception, e);
diff --git 
a/plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/base/connection/SerialChannelFactory.java
 
b/plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/base/connection/SerialChannelFactory.java
index 0d9941f..cdfea8f 100644
--- 
a/plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/base/connection/SerialChannelFactory.java
+++ 
b/plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/base/connection/SerialChannelFactory.java
@@ -59,4 +59,7 @@ public class SerialChannelFactory implements ChannelFactory {
         }
     }
 
+    public String getSerialPort() {
+        return serialPort;
+    }
 }
diff --git 
a/plc4j/protocols/driver-bases/tcp/src/main/java/org/apache/plc4x/java/base/connection/TcpSocketChannelFactory.java
 
b/plc4j/protocols/driver-bases/tcp/src/main/java/org/apache/plc4x/java/base/connection/TcpSocketChannelFactory.java
index 3fbfd2a..31b869d 100644
--- 
a/plc4j/protocols/driver-bases/tcp/src/main/java/org/apache/plc4x/java/base/connection/TcpSocketChannelFactory.java
+++ 
b/plc4j/protocols/driver-bases/tcp/src/main/java/org/apache/plc4x/java/base/connection/TcpSocketChannelFactory.java
@@ -19,7 +19,10 @@ under the License.
 package org.apache.plc4x.java.base.connection;
 
 import io.netty.bootstrap.Bootstrap;
-import io.netty.channel.*;
+import io.netty.channel.Channel;
+import io.netty.channel.ChannelFuture;
+import io.netty.channel.ChannelHandler;
+import io.netty.channel.ChannelOption;
 import io.netty.channel.nio.NioEventLoopGroup;
 import io.netty.channel.socket.nio.NioSocketChannel;
 import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
@@ -60,4 +63,8 @@ public class TcpSocketChannelFactory implements 
ChannelFactory {
     public InetAddress getAddress() {
         return address;
     }
+
+    public int getPort() {
+        return port;
+    }
 }

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

Reply via email to