Feature/test/game commands #18

Merged
Dogukan-lab merged 3 commits from feature/test/gameCommands into master 2020-10-23 21:57:26 +00:00
2 changed files with 100 additions and 47 deletions
Showing only changes of commit 3963e07568 - Show all commits

View File

@@ -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
{
};
}
}
}

View File

@@ -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);
}
}
}