Skip to content

Commit 7bfe348

Browse files
committed
~ ConnectionListener callback test
1 parent 28aa745 commit 7bfe348

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

modbus-tests/src/test/java/com/digitalpetri/modbus/test/ModbusTcpClientServerIT.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.digitalpetri.modbus.test;
22

3+
import static org.junit.jupiter.api.Assertions.assertTrue;
4+
35
import com.digitalpetri.modbus.ModbusPduSerializer.DefaultRequestSerializer;
46
import com.digitalpetri.modbus.client.ModbusClient;
57
import com.digitalpetri.modbus.client.ModbusTcpClient;
@@ -11,10 +13,13 @@
1113
import com.digitalpetri.modbus.server.ReadWriteModbusServices;
1214
import com.digitalpetri.modbus.tcp.Netty;
1315
import com.digitalpetri.modbus.tcp.client.NettyTcpClientTransport;
16+
import com.digitalpetri.modbus.tcp.client.NettyTcpClientTransport.ConnectionListener;
1417
import com.digitalpetri.modbus.tcp.client.NettyTimeoutScheduler;
1518
import com.digitalpetri.modbus.tcp.server.NettyTcpServerTransport;
1619
import java.nio.ByteBuffer;
1720
import java.util.Optional;
21+
import java.util.concurrent.CountDownLatch;
22+
import java.util.concurrent.TimeUnit;
1823
import org.junit.jupiter.api.AfterEach;
1924
import org.junit.jupiter.api.BeforeEach;
2025
import org.junit.jupiter.api.Test;
@@ -24,6 +29,8 @@ public class ModbusTcpClientServerIT extends ClientServerIT {
2429
ModbusTcpClient client;
2530
ModbusTcpServer server;
2631

32+
NettyTcpClientTransport clientTransport;
33+
2734
@BeforeEach
2835
void setup() throws Exception {
2936
var processImage = new ProcessImage();
@@ -59,7 +66,7 @@ protected Optional<ProcessImage> getProcessImage(int unitId) {
5966
}
6067

6168
final var port = serverPort;
62-
var clientTransport = NettyTcpClientTransport.create(
69+
clientTransport = NettyTcpClientTransport.create(
6370
cfg -> {
6471
cfg.hostname = "localhost";
6572
cfg.port = port;
@@ -112,4 +119,28 @@ void sendRaw() throws Exception {
112119
System.out.println("responsePduBytes: " + Hex.format(responsePduBytes));
113120
}
114121

122+
@Test
123+
void connectionListener() throws Exception {
124+
var onConnection = new CountDownLatch(1);
125+
var onConnectionLost = new CountDownLatch(1);
126+
127+
clientTransport.addConnectionListener(new ConnectionListener() {
128+
@Override
129+
public void onConnection() {
130+
onConnection.countDown();
131+
}
132+
133+
@Override
134+
public void onConnectionLost() {
135+
onConnectionLost.countDown();
136+
}
137+
});
138+
139+
client.disconnect();
140+
assertTrue(onConnectionLost.await(1, TimeUnit.SECONDS));
141+
142+
client.connect();
143+
assertTrue(onConnection.await(1, TimeUnit.SECONDS));
144+
}
145+
115146
}

0 commit comments

Comments
 (0)