package com.github.bjuvensjo.rsimulator.socket; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.name.Named; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; import com.github.bjuvensjo.rsimulator.socket.config.GlobalConfig; import com.github.bjuvensjo.rsimulator.socket.config.SocketModule; import java.io.IOException; import java.io.InputStream; import java.net.Socket; /** * Created by ei4577 on 04/03/14. */ public class SocketSimulatorIT { @Inject @Named("encoding") private String encoding; @Before public void init() { Injector injector = Guice.createInjector(new SocketModule()); injector.injectMembers(this); } @Test public void test() { String header = " 00061234 "; String body = "123ABC"; String expected = "123AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDDDDDDDDDDEEEEEEEEEE"; try { Socket s = new Socket("localhost", GlobalConfig.port); s.getOutputStream().write((header + body).getBytes(encoding)); InputStream in = s.getInputStream(); byte[] headerBuffer = new byte[48]; in.read(headerBuffer); String sLength = new String(headerBuffer, 4, 4, encoding); int length = Integer.parseInt(sLength); byte[] bodyBuffer = new byte[length]; in.read(bodyBuffer); String responseBody = new String(bodyBuffer, encoding); assertEquals(expected, responseBody); } catch (IOException e) { e.printStackTrace(); } } }