From 3963e075681aa9c859d8878f5a952228be2b8ff3 Mon Sep 17 00:00:00 2001 From: Dogukan Date: Fri, 23 Oct 2020 23:51:38 +0200 Subject: [PATCH] [ADDITION] Game command unit tests --- .../Tests/JSONConvertCanvasMessages.cs | 47 -------- Eindproject/Tests/JSONConvertGameCommand.cs | 100 ++++++++++++++++++ 2 files changed, 100 insertions(+), 47 deletions(-) create mode 100644 Eindproject/Tests/JSONConvertGameCommand.cs diff --git a/Eindproject/Tests/JSONConvertCanvasMessages.cs b/Eindproject/Tests/JSONConvertCanvasMessages.cs index 02f6da2..d8e6493 100644 --- a/Eindproject/Tests/JSONConvertCanvasMessages.cs +++ b/Eindproject/Tests/JSONConvertCanvasMessages.cs @@ -136,52 +136,5 @@ namespace Tests }; } - - [TestMethod] - public void TestConstructGameStartData() - { - byte identifier = 0x05; - dynamic payload = new - { - - }; - - } - - [TestMethod] - public void TestConstructGameTimerElapsedMessage() - { - byte identifier = 0x05; - dynamic payload = new - { - - }; - - } - - [TestMethod] - public void TestGetGameCommand() - { - byte identifier = 0x05; - dynamic payload = new - { - - }; - - } - - [TestMethod] - public void TestGetStartGameLobbyID() - { - byte identifier = 0x05; - dynamic payload = new - { - - }; - - } - - - } } diff --git a/Eindproject/Tests/JSONConvertGameCommand.cs b/Eindproject/Tests/JSONConvertGameCommand.cs new file mode 100644 index 0000000..f397dd7 --- /dev/null +++ b/Eindproject/Tests/JSONConvertGameCommand.cs @@ -0,0 +1,100 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Newtonsoft.Json; +using SharedClientServer; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Tests +{ + [TestClass] + public class JSONConvertGameCommand + { + public byte[] GetPayload(byte[] message) + { + byte[] payload = new byte[message.Length - 5]; + Array.Copy(message, 5, payload, 0, message.Length - 5); + return payload; + } + + public dynamic GetDynamic(byte[] payload) + { + return JsonConvert.DeserializeObject(Encoding.UTF8.GetString(GetPayload(payload))); + } + + public byte[] GameCommandMessage() + { + byte identifier = 0x05; + dynamic payload = new + { + command = JSONConvert.GameCommand.NEXT_ROUND + }; + + byte[] res = JSONConvert.GetMessageToSend(identifier, payload); + + return res; + } + + public byte[] GameLobbyID() + { + byte identifier = 0x05; + dynamic payload = new + { + lobbyToStart = 1 + }; + + byte[] res = JSONConvert.GetMessageToSend(identifier, payload); + + return res; + } + + [TestMethod] + public void TestConstructGameStartData() + { + byte[] lobbyData = JSONConvert.ConstructGameStartData(1); + dynamic payload = GetDynamic(lobbyData); + + int lobbyid = 1; + JSONConvert.GameCommand gameCommand = payload.command; + + Assert.AreEqual(0x05, lobbyData[4]); + Assert.AreEqual(JSONConvert.GameCommand.START_GAME, gameCommand); + Assert.AreEqual(lobbyid, (int)payload.lobbyToStart); + } + + [TestMethod] + public void TestConstructGameTimerElapsedMessage() + { + byte[] lobbyData = JSONConvert.ConstructGameTimerElapsedMessage(1); + dynamic payload = GetDynamic(lobbyData); + + int lobbyid = 1; + JSONConvert.GameCommand gameCommand = payload.command; + + Assert.AreEqual(0x05, lobbyData[4]); + Assert.AreEqual(JSONConvert.GameCommand.TIMER_ELAPSED, gameCommand); + Assert.AreEqual(lobbyid, (int)payload.id); + } + + [TestMethod] + public void TestGetGameCommand() + { + byte[] data = GetPayload(GameCommandMessage()); + JSONConvert.GameCommand gameCommand = JSONConvert.GetGameCommand(data); + + Assert.AreEqual(JSONConvert.GameCommand.NEXT_ROUND, gameCommand); + + } + + [TestMethod] + public void TestGetStartGameLobbyID() + { + byte[] data = GetPayload(GameLobbyID()); + int lobbyID = JSONConvert.GetStartGameLobbyID(data); + + int expected = 1; + + Assert.AreEqual(expected, lobbyID); + } + } +}