Fixed Failing EchoTest (#782)

This commit is contained in:
Nikhil Khatwani 2016-11-03 12:49:18 +05:30 committed by Grzegorz Piwowarek
parent 33a183b965
commit c48a5c2c79
3 changed files with 30 additions and 16 deletions

View File

@ -17,6 +17,11 @@ public class EchoClient {
return instance; return instance;
} }
public static void stop() throws IOException {
client.close();
buffer = null;
}
private EchoClient() { private EchoClient() {
try { try {
client = SocketChannel.open(new InetSocketAddress("localhost", 5454)); client = SocketChannel.open(new InetSocketAddress("localhost", 5454));
@ -42,5 +47,4 @@ public class EchoClient {
return response; return response;
} }
} }

View File

@ -1,21 +1,19 @@
package com.baeldung.java.nio.selector; package com.baeldung.java.nio.selector;
import java.io.File;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel; import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel; import java.nio.channels.SocketChannel;
import java.nio.channels.Selector;
import java.nio.channels.SelectionKey;
import java.nio.ByteBuffer;
import java.io.IOException;
import java.util.Set;
import java.util.Iterator; import java.util.Iterator;
import java.net.InetSocketAddress; import java.util.Set;
import java.io.File;
public class EchoServer { public class EchoServer {
public static void main(String[] args) public static void main(String[] args) throws IOException {
throws IOException {
Selector selector = Selector.open(); Selector selector = Selector.open();
ServerSocketChannel serverSocket = ServerSocketChannel.open(); ServerSocketChannel serverSocket = ServerSocketChannel.open();
serverSocket.bind(new InetSocketAddress("localhost", 5454)); serverSocket.bind(new InetSocketAddress("localhost", 5454));
@ -49,7 +47,6 @@ public class EchoServer {
} }
} }
public static Process start() throws IOException, InterruptedException { public static Process start() throws IOException, InterruptedException {
String javaHome = System.getProperty("java.home"); String javaHome = System.getProperty("java.home");
String javaBin = javaHome + File.separator + "bin" + File.separator + "java"; String javaBin = javaHome + File.separator + "bin" + File.separator + "java";

View File

@ -4,19 +4,32 @@ import static org.junit.Assert.assertEquals;
import java.io.IOException; import java.io.IOException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; import org.junit.Test;
public class NioEchoIntegrationTest { public class NioEchoIntegrationTest {
Process server;
EchoClient client;
@Before
public void setup() throws IOException, InterruptedException {
server = EchoServer.start();
client = EchoClient.start();
}
@Test @Test
public void givenClient_whenServerEchosMessage_thenCorrect() throws IOException, InterruptedException { public void givenServerClient_whenServerEchosMessage_thenCorrect() {
Process process = EchoServer.start();
EchoClient client = EchoClient.start();
String resp1 = client.sendMessage("hello"); String resp1 = client.sendMessage("hello");
String resp2 = client.sendMessage("world"); String resp2 = client.sendMessage("world");
assertEquals("hello", resp1); assertEquals("hello", resp1);
assertEquals("world", resp2); assertEquals("world", resp2);
}
process.destroy(); @After
public void teardown() throws IOException {
server.destroy();
EchoClient.stop();
} }
} }