diff --git a/Eindproject/Tests/JSONConvertRandomWord.cs b/Eindproject/Tests/JSONConvertRandomWord.cs new file mode 100644 index 0000000..1f5bc7e --- /dev/null +++ b/Eindproject/Tests/JSONConvertRandomWord.cs @@ -0,0 +1,59 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Newtonsoft.Json; +using SharedClientServer; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Tests +{ + [TestClass] + public class JSONConvertRandomWord + { + public byte[] GetPayload(byte[] message) + { + byte[] payload = new byte[message.Length - 5]; + Array.Copy(message, 5, payload, 0, message.Length - 5); + return payload; + } + + public byte[] RandomWord() + { + byte identifier = 0x07; + dynamic payload = new + { + word = "teacher" + }; + + byte[] res = JSONConvert.GetMessageToSend(identifier, payload); + + return res; + } + + public dynamic GetDynamic(byte[] payload) + { + return JsonConvert.DeserializeObject(Encoding.UTF8.GetString(GetPayload(payload))); + } + + [TestMethod] + public void TestSendRandomWord() + { + string randomWord = JSONConvert.SendRandomWord("WordsForGame.json"); + + string result = "teacher"; + + Assert.AreEqual(result, randomWord); + } + + [TestMethod] + public void TestGetRandomWord() + { + byte[] data = GetPayload(RandomWord()); + string result = JSONConvert.GetRandomWord(data); + + string word = "teacher"; + + Assert.AreEqual(word, result); + } + } +} diff --git a/Eindproject/Tests/JSONConvertUserMessages.cs b/Eindproject/Tests/JSONConvertUserMessages.cs new file mode 100644 index 0000000..008cab3 --- /dev/null +++ b/Eindproject/Tests/JSONConvertUserMessages.cs @@ -0,0 +1,89 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Newtonsoft.Json; +using SharedClientServer; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Tests +{ + [TestClass] + public class JSONConvertUserMessages + { + + 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))); + } + + private byte[] ComboArray() + { + byte identifier = 0x02; + dynamic payload = new + { + username = "testName", + message = "message" + }; + + byte[] result = JSONConvert.GetMessageToSend(identifier, payload); + + return result; + } + + private byte[] LoginArray() + { + byte identifier = 0x01; + dynamic payload = new + { + username = "testname" + }; + + byte[] result = JSONConvert.GetMessageToSend(identifier, payload); + + return result; + } + + [TestMethod] + public void TestGetUsernameAndMessage() + { + byte[] data = GetPayload(ComboArray()); + (string,string) result = JSONConvert.GetUsernameAndMessage(data); + + (string, string) testCombo = ("testName", "message"); + + Assert.AreEqual(testCombo, result); + } + + [TestMethod] + public void TestGetUsernameLogin() + { + byte[] data = GetPayload(LoginArray()); + string result = JSONConvert.GetUsernameLogin(data); + string username = "testname"; + + Assert.AreEqual(username, result); + } + + [TestMethod] + public void TestConstructUsernameMessage() + { + byte[] res = JSONConvert.ConstructUsernameMessage("testname"); + dynamic payload = GetDynamic(res); + + string username = "testname"; + + Assert.AreEqual(0x01, res[4]); + Assert.AreEqual(username, (string)payload.username); + } + + + + } +} diff --git a/Eindproject/Tests/Tests.csproj b/Eindproject/Tests/Tests.csproj index b27b157..51eb716 100644 --- a/Eindproject/Tests/Tests.csproj +++ b/Eindproject/Tests/Tests.csproj @@ -6,6 +6,16 @@ false + + + + + + + Always + + + diff --git a/Eindproject/Tests/resources/WordsForGame.json b/Eindproject/Tests/resources/WordsForGame.json new file mode 100644 index 0000000..71676ba --- /dev/null +++ b/Eindproject/Tests/resources/WordsForGame.json @@ -0,0 +1,31 @@ +{ + "filename": "wordsForGame", + "words": [ + "teacher", + "love", + "engineer", + "supermarket", + "disaster", + "studio", + "restaurant", + "music", + "chocolate", + "dirt", + "thought", + "virus", + "lieutenant", + "painter", + "kiwi", + "power ranger", + "computer", + "people", + "candidate", + "security guard", + "Canada", + "teeth", + "army", + "airport", + "president", + "bedroom" + ] +} \ No newline at end of file diff --git a/SharedClientServer/JSONConvert.cs b/SharedClientServer/JSONConvert.cs index cd3d6e7..f652d84 100644 --- a/SharedClientServer/JSONConvert.cs +++ b/SharedClientServer/JSONConvert.cs @@ -300,7 +300,7 @@ namespace SharedClientServer Debug.WriteLine($"[SERVERCLIENT] Sending random words {words}"); - return words.words[index]; + return words.words[0]; } /*