101 lines
2.8 KiB
C#
101 lines
2.8 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|