Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
language: java
38 changes: 38 additions & 0 deletions src/main/java/com/ericsmith/InternetSocket.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.ericsmith;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;

public class InternetSocket implements Socket {
private SocketHandler handler;
private java.net.Socket socket;

public InternetSocket(SocketHandler handler) {
this.handler = handler;
}

@Override
public void start() {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(5000);
socket = serverSocket.accept();
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String input = in.readLine();
out.println(input);
out.flush();
}
catch (Exception e)
{
if (serverSocket != null)
try {
serverSocket.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
12 changes: 12 additions & 0 deletions src/main/java/com/ericsmith/Server.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,20 @@

public class Server {

private Socket socket;

public Server(Socket socket) {
this.socket = socket;
}

public static void main(String[] args)
{
WebserviceHandler handler = new WebserviceHandler();
Server server = new Server(new InternetSocket(handler));
server.run();
}

public void run() {
socket.start();
}
}
5 changes: 5 additions & 0 deletions src/main/java/com/ericsmith/Socket.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.ericsmith;

public interface Socket {
void start();
}
7 changes: 7 additions & 0 deletions src/main/java/com/ericsmith/SocketHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.ericsmith;

/**
* Created by eric on 9/23/14.
*/
public interface SocketHandler {
}
4 changes: 4 additions & 0 deletions src/main/java/com/ericsmith/WebserviceHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.ericsmith;

public class WebserviceHandler implements SocketHandler {
}
4 changes: 4 additions & 0 deletions src/test/java/EchoHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import com.ericsmith.SocketHandler;

public class EchoHandler implements SocketHandler {
}
49 changes: 49 additions & 0 deletions src/test/java/InternetSocketTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import com.ericsmith.*;
import com.ericsmith.Socket;
import org.junit.Test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.*;

import static org.junit.Assert.assertEquals;

public class InternetSocketTest {

@Test
public void StartsTheSocket() throws Exception
{
InetAddress host = InetAddress.getLocalHost();
EchoHandler handler = new EchoHandler();
final Socket socket = new InternetSocket(handler);

Thread thread = new Thread(
new Runnable() {
@Override
public void run() {
socket.start();
}
}
);

thread.start();

java.net.Socket client = new java.net.Socket(host.getHostName(), 5000);

try {
PrintWriter out = new PrintWriter(client.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

out.println("Test\n");
out.flush();

assertEquals("Test", in.readLine());
}
finally {
client.close();
thread.interrupt();
}

}
}
10 changes: 10 additions & 0 deletions src/test/java/Mocket.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import com.ericsmith.Socket;

public class Mocket implements Socket {
public boolean Started;

@Override
public void start() {
Started = true;
}
}
17 changes: 17 additions & 0 deletions src/test/java/ServerTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import com.ericsmith.Server;
import org.junit.Test;

import static org.junit.Assert.assertTrue;

public class ServerTest {

@Test
public void ItStartsASocket() {
Mocket mocket = new Mocket();
Server server = new Server(mocket);

server.run();

assertTrue(mocket.Started);
}
}