diff --git a/build.gradle b/build.gradle index d0d6e88ba8f6409f214fc72a8a2dae6eb5ae363c..05e3b9f9604d59eb83548b38a75550434e33b716 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'net.ltgt.errorprone' version '0.0.8' } -version = '0.2.0' +version = '0.2.1' group = 'gone.corewars.library' apply plugin: 'java' @@ -23,6 +23,7 @@ dependencies { compile 'org.json:json:20160810' compile 'org.everit.json:org.everit.json.schema:1.+' testCompile 'junit:junit:4.+' + testCompile 'org.awaitility:awaitility:2.+' } checkstyle { diff --git a/src/main/java/gone/lib/network/CwClient.java b/src/main/java/gone/lib/network/CwClient.java index 5d1a671deb64efae3a5c93b15eb94b6a804a99ef..4d6d36673cdaef9723bf4f0a29a2ceef695b47f7 100644 --- a/src/main/java/gone/lib/network/CwClient.java +++ b/src/main/java/gone/lib/network/CwClient.java @@ -67,7 +67,7 @@ public class CwClient implements IClient, ITcpListener { } @Override - public void receivedMessage(String sessionId, String data) { + public void receiveMessage(String sessionId, String data) { CwMessageType type = interpreter.getMessageType(data); if (type == CwMessageType.LoginOk) { diff --git a/src/main/java/gone/lib/network/CwServer.java b/src/main/java/gone/lib/network/CwServer.java index 8a20ea2dab5fbb5f0ab3e2f1e5f6faffaca2bd2d..ae11389c020e8d88a68c2bf9004726a2c52b018f 100644 --- a/src/main/java/gone/lib/network/CwServer.java +++ b/src/main/java/gone/lib/network/CwServer.java @@ -68,7 +68,7 @@ public class CwServer implements IServer, ITcpListener { } @Override - public void receivedMessage(String sessionId, String data) { + public void receiveMessage(String sessionId, String data) { CwMessageType type = interpreter.getMessageType(data); if (type == CwMessageType.Login) { diff --git a/src/main/java/gone/lib/network/contracts/ITcpListener.java b/src/main/java/gone/lib/network/contracts/ITcpListener.java index 97c6b086175a375b18ae17445598e35ea9ef1baf..6830e532d904175a481fffba67b1a76e4e8e0c88 100644 --- a/src/main/java/gone/lib/network/contracts/ITcpListener.java +++ b/src/main/java/gone/lib/network/contracts/ITcpListener.java @@ -4,5 +4,5 @@ package gone.lib.network.contracts; * Created by Winfried on 22.09.2016. */ public interface ITcpListener { - void receivedMessage(String sessionId, String data); + void receiveMessage(String sessionId, String data); } diff --git a/src/main/java/gone/lib/network/serialization/OutgoingMessagesSerializer.java b/src/main/java/gone/lib/network/serialization/OutgoingMessagesSerializer.java index 6625daa4a6c02268d9227aa340e12e4092bbd581..e57dc469e4c402e1cbd53032cf603dcba7762a00 100644 --- a/src/main/java/gone/lib/network/serialization/OutgoingMessagesSerializer.java +++ b/src/main/java/gone/lib/network/serialization/OutgoingMessagesSerializer.java @@ -57,7 +57,7 @@ public class OutgoingMessagesSerializer { .key("content") .object() .key("warriorRedcode").value(String.join( - NetworkConstants.REDCODESEPARATOR, content.warriorRedcode)) + NetworkConstants.REDCODESEPARATOR, content.warriorRedcode)) .endObject() .key("version").value(packetVersion) .key("packageType").value("ready") @@ -84,14 +84,14 @@ public class OutgoingMessagesSerializer { public String serializeStartMessage(CwStartContent content) { String result = new JSONStringer() .object() - .key("content") - .object() - .key("fullState").value(String.join( - NetworkConstants.REDCODESEPARATOR, content.fullState)) - .key("players").value(content.players) - .endObject() - .key("version").value(packetVersion) - .key("packageType").value("start") + .key("content") + .object() + .key("fullState").value(String.join( + NetworkConstants.REDCODESEPARATOR, content.fullState)) + .key("players").value(content.players) + .endObject() + .key("version").value(packetVersion) + .key("packageType").value("start") .endObject().toString(); return result; } diff --git a/src/main/java/gone/lib/network/tcp/TcpClientModule.java b/src/main/java/gone/lib/network/tcp/TcpClientModule.java index e98bbcd0477bb526280d31053b4b5bbd2aa0cb90..952813d1e359a46a531210fca8461bd4ecf7c30f 100644 --- a/src/main/java/gone/lib/network/tcp/TcpClientModule.java +++ b/src/main/java/gone/lib/network/tcp/TcpClientModule.java @@ -71,9 +71,9 @@ public class TcpClientModule implements ITcpClientModule, ITcpListener { } @Override - public void receivedMessage(String sessionId, String data) { + public void receiveMessage(String sessionId, String data) { for (ITcpListener listener: listeners) { - listener.receivedMessage(sessionId, data); + listener.receiveMessage(sessionId, data); } } } \ No newline at end of file diff --git a/src/main/java/gone/lib/network/tcp/TcpReceiveMessage.java b/src/main/java/gone/lib/network/tcp/TcpReceiveMessage.java index ede8a5b7b5540710cb5f864b83cac29a47e680dd..815515eacbcf779bcebee0c6ba2e904edf3a7961 100644 --- a/src/main/java/gone/lib/network/tcp/TcpReceiveMessage.java +++ b/src/main/java/gone/lib/network/tcp/TcpReceiveMessage.java @@ -44,7 +44,7 @@ public class TcpReceiveMessage implements Runnable { while (!line.equals(NetworkConstants.FINISHINGLINE)); for (ITcpListener listener : listeners) { - listener.receivedMessage(this.sessionId, clientData.toString()); + listener.receiveMessage(this.sessionId, clientData.toString()); } } } catch (Exception exception) { diff --git a/src/main/java/gone/lib/network/tcp/TcpServerModule.java b/src/main/java/gone/lib/network/tcp/TcpServerModule.java index d3358867ad2f5c4711c21c0719c2a23c5150ff19..cbc6a0dc0d7aeba5820aec992a0bb13aaa0e9456 100644 --- a/src/main/java/gone/lib/network/tcp/TcpServerModule.java +++ b/src/main/java/gone/lib/network/tcp/TcpServerModule.java @@ -76,9 +76,9 @@ public class TcpServerModule implements ITcpServerModule, ITcpServerAccepted, IT } @Override - public void receivedMessage(String sessionId, String data) { + public void receiveMessage(String sessionId, String data) { for (ITcpListener listener: listeners) { - listener.receivedMessage(sessionId, data); + listener.receiveMessage(sessionId, data); } } } \ No newline at end of file diff --git a/src/test/java/gone/lib/network/test/ClientLoginTest.java b/src/test/java/gone/lib/network/test/ClientLoginTest.java index ddce36f56c6a4e23efc2d6a0d6d91b57f65012f6..2dc86420c8c7b0f02fdce7443f46fb65f540b78c 100644 --- a/src/test/java/gone/lib/network/test/ClientLoginTest.java +++ b/src/test/java/gone/lib/network/test/ClientLoginTest.java @@ -1,5 +1,10 @@ package gone.lib.network.test; +import static java.util.concurrent.TimeUnit.SECONDS; +import static org.awaitility.Awaitility.await; +import static org.awaitility.Awaitility.fieldIn; +import static org.junit.Assert.assertTrue; + import gone.lib.common.ClientRole; import gone.lib.network.contracts.ITcpListener; import gone.lib.network.json.CwLoginContent; @@ -8,9 +13,11 @@ import gone.lib.network.serialization.IncomingMessagesInterpreter; import gone.lib.network.serialization.OutgoingMessagesSerializer; import gone.lib.network.tcp.TcpClientModule; import gone.lib.network.tcp.TcpServerModule; -import org.junit.Assert; + import org.junit.Test; +import java.util.concurrent.Callable; + /** * Created by winfr on 26.09.2016. */ @@ -21,40 +28,34 @@ public class ClientLoginTest { } @Override - public void receivedMessage(String sessionId, String data) { + public void receiveMessage(String sessionId, String data) { IncomingMessagesInterpreter interpreter = new IncomingMessagesInterpreter(); receivedLogin = interpreter.getMessageType(data) == CwMessageType.Login; } - public boolean receivedLogin; + private boolean receivedLogin; } @Test public void testSingleClientLogin() throws InterruptedException { TcpServerModule server = new TcpServerModule(); ServerListener listener = new ServerListener(); - server.registerListener(listener); server.start(5556); TcpClientModule client = new TcpClientModule(); client.connect("localhost", 5556); - OutgoingMessagesSerializer serializer = new OutgoingMessagesSerializer(); - CwLoginContent content = new CwLoginContent(); content.name = "testWarrior"; content.role = ClientRole.Player; - - Thread.sleep(100); - client.sendMessage(serializer.serializeLoginMessage(content)); - Thread.sleep(100); - + Callable hasReceivedLogin = fieldIn(listener).ofType(boolean.class).andWithName("receivedLogin"); + await().atMost(1, SECONDS).until(hasReceivedLogin); server.stop(); client.disconnect(); - Assert.assertTrue(listener.receivedLogin); + assertTrue(listener.receivedLogin); } } diff --git a/src/test/java/gone/lib/network/test/ClientServerConnectionTest.java b/src/test/java/gone/lib/network/test/ClientServerConnectionTest.java index ac59d4d885291747793244ee4a847487a935db14..c2b9a707a1b419ca0b7d7e1a265a390a8d2baa9b 100644 --- a/src/test/java/gone/lib/network/test/ClientServerConnectionTest.java +++ b/src/test/java/gone/lib/network/test/ClientServerConnectionTest.java @@ -8,7 +8,6 @@ import gone.lib.network.contracts.ITcpServerAccepted; import gone.lib.network.tcp.TcpClientModule; import gone.lib.network.tcp.TcpServerAccept; -import org.junit.Assert; import org.junit.Test; /** diff --git a/src/test/java/gone/lib/network/test/SerializationTest.java b/src/test/java/gone/lib/network/test/SerializationTest.java index 006c7789c2dba787af8344342b7109504d775f90..3b9546965597065fe4b686942b2ca7aec1835608 100644 --- a/src/test/java/gone/lib/network/test/SerializationTest.java +++ b/src/test/java/gone/lib/network/test/SerializationTest.java @@ -1,11 +1,18 @@ package gone.lib.network.test; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; + import gone.lib.common.ClientRole; import gone.lib.common.RcStandard; -import gone.lib.network.json.*; +import gone.lib.network.json.CwGameStatusContent; +import gone.lib.network.json.CwLoginContent; +import gone.lib.network.json.CwLoginOkContent; +import gone.lib.network.json.CwReadyContent; +import gone.lib.network.json.CwStartContent; import gone.lib.network.serialization.IncomingMessagesInterpreter; import gone.lib.network.serialization.OutgoingMessagesSerializer; -import org.junit.Assert; + import org.junit.Test; import java.util.LinkedList; @@ -15,7 +22,7 @@ import java.util.LinkedList; */ public class SerializationTest { @Test - public void TestGameStatusMessage() { + public void testGameStatusMessage() { IncomingMessagesInterpreter interpreter = new IncomingMessagesInterpreter(); OutgoingMessagesSerializer serializer = new OutgoingMessagesSerializer(); @@ -31,15 +38,15 @@ public class SerializationTest { CwGameStatusContent newContent = interpreter.parseGameStatusMessage(parsedMessage); - Assert.assertEquals(content.indexOfChangedCoreElement, newContent.indexOfChangedCoreElement); - Assert.assertEquals(content.newIpIndex, newContent.newIpIndex); - Assert.assertEquals(content.oldIpIndex, newContent.oldIpIndex); - Assert.assertEquals(content.newOpCode, newContent.newOpCode); - Assert.assertEquals(content.playerOneActive, newContent.playerOneActive); + assertThat(content.indexOfChangedCoreElement, is(newContent.indexOfChangedCoreElement)); + assertThat(content.newIpIndex, is(newContent.newIpIndex)); + assertThat(content.oldIpIndex, is(newContent.oldIpIndex)); + assertThat(content.newOpCode, is(newContent.newOpCode)); + assertThat(content.playerOneActive, is(newContent.playerOneActive)); } @Test - public void TestLoginMessage() { + public void testLoginMessage() { IncomingMessagesInterpreter interpreter = new IncomingMessagesInterpreter(); OutgoingMessagesSerializer serializer = new OutgoingMessagesSerializer(); @@ -52,12 +59,12 @@ public class SerializationTest { CwLoginContent newContent = interpreter.parseLoginMessage(parsedMessage); - Assert.assertEquals(content.name, newContent.name); - Assert.assertEquals(content.role, newContent.role); + assertThat(content.name, is(newContent.name)); + assertThat(content.role, is(newContent.role)); } @Test - public void TestLoginOkMessage() { + public void testLoginOkMessage() { IncomingMessagesInterpreter interpreter = new IncomingMessagesInterpreter(); OutgoingMessagesSerializer serializer = new OutgoingMessagesSerializer(); @@ -72,13 +79,13 @@ public class SerializationTest { CwLoginOkContent newContent = interpreter.parseLoginOkMessage(parsedMessage); - Assert.assertEquals(content.lineLength, newContent.lineLength); - Assert.assertEquals(content.coreSize, newContent.coreSize); - Assert.assertEquals(content.clientMustWait, newContent.clientMustWait); + assertThat(content.lineLength, is(newContent.lineLength)); + assertThat(content.coreSize, is(newContent.coreSize)); + assertThat(content.clientMustWait, is(newContent.clientMustWait)); } @Test - public void TestReadyMessage() { + public void testReadyMessage() { IncomingMessagesInterpreter interpreter = new IncomingMessagesInterpreter(); OutgoingMessagesSerializer serializer = new OutgoingMessagesSerializer(); @@ -93,15 +100,14 @@ public class SerializationTest { CwReadyContent newContent = interpreter.parseReadyMessage(parsedMessage); - Assert.assertEquals(newContent.warriorRedcode.size(), content.warriorRedcode.size()); - - newContent.warriorRedcode.get(0).equals(content.warriorRedcode.get(0)); - newContent.warriorRedcode.get(1).equals(content.warriorRedcode.get(1)); - newContent.warriorRedcode.get(2).equals(content.warriorRedcode.get(2)); + assertThat(newContent.warriorRedcode.size(), is(content.warriorRedcode.size())); + assertThat(newContent.warriorRedcode.get(0), is(content.warriorRedcode.get(0))); + assertThat(newContent.warriorRedcode.get(1), is(content.warriorRedcode.get(1))); + assertThat(newContent.warriorRedcode.get(2), is(content.warriorRedcode.get(2))); } @Test - public void TestStartMessage() { + public void testStartMessage() { IncomingMessagesInterpreter interpreter = new IncomingMessagesInterpreter(); OutgoingMessagesSerializer serializer = new OutgoingMessagesSerializer(); @@ -119,13 +125,13 @@ public class SerializationTest { CwStartContent newContent = interpreter.parseStartMessage(parsedMessage); - Assert.assertEquals(content.players, newContent.players); - - Assert.assertEquals(newContent.fullState.size(), content.fullState.size()); + assertThat(content.players, is(newContent.players)); + assertThat(content.fullState, is(newContent.fullState)); + assertThat(newContent.fullState.size(), is(content.fullState.size())); - newContent.fullState.get(0).equals(content.fullState.get(0)); - newContent.fullState.get(1).equals(content.fullState.get(1)); - newContent.fullState.get(2).equals(content.fullState.get(2)); - newContent.fullState.get(3).equals(content.fullState.get(3)); + assertThat(newContent.fullState.get(0), is(content.fullState.get(0))); + assertThat(newContent.fullState.get(2), is(content.fullState.get(2))); + assertThat(newContent.fullState.get(3), is(content.fullState.get(3))); + assertThat(newContent.fullState.get(1), is(content.fullState.get(1))); } } \ No newline at end of file