@Test
public void sendEventsOverReconnectionTest() throws IOException, InterruptedException, ServerError {
DatagramSocket serverSocket = new DatagramSocket();
final int port = serverSocket.getLocalPort();
try {
final RiemannClient client = new RiemannClient(new SimpleUdpTransport(serverSocket.getLocalPort()));
try {
client.connect();
assertTrue(client.isConnected());
sendTestMessages(serverSocket, client);
// Close listening socket
serverSocket.close();
// Expect send to drop messages silently
final Proto.Event e = Util.createEvent();
client.sendEvents(e);
// Reopen listening socket
serverSocket = new DatagramSocket(new InetSocketAddress(port));
// Expect sent messages to be received again
sendTestMessages(serverSocket, client);
} finally {
client.disconnect();
assertFalse(client.isConnected());
}
} finally {
serverSocket.close();
}
}