public void PingPackageDeserializationTest() { PingPackage expected = new PingPackage { Value = 10 }; var buffer = expected.ToByteArray(); PingPackage actual = new PingPackage(); int len = 0; ClientPackageType packageType = ClientPackageType.None; using (var stream = new MemoryStream(buffer)) { using (var reader = new BinaryReader(stream)) { len = reader.ReadInt32(); packageType = (ClientPackageType)reader.ReadByte(); actual.FromByteArray(reader.ReadBytes(len - 1)); } } Assert.AreEqual(5, len); Assert.AreEqual(ClientPackageType.Ping, packageType); Assert.AreEqual(9, buffer.Length); Assert.AreEqual(expected.Value, actual.Value); }
public ClientPackage GetNextPackage(Stream stream) { ClientPackage result = null; byte[] data = new byte[4]; stream.Read(data, 0, 4); int len = BitConverter.ToInt32(data, 0); if (len <= 0) { return(null); } ClientPackageType type = (ClientPackageType)stream.ReadByte(); data = new byte[len - 1]; stream.Read(data, 0, len - 1); switch (type) { case ClientPackageType.Ping: result = new PingPackage(); break; case ClientPackageType.Login: result = new LoginPackage(); break; case ClientPackageType.GetRoom: result = new GetRoomPackage(); break; case ClientPackageType.SetTargets: result = new SetTargetsPackage(); break; case ClientPackageType.ExitFromRoom: result = new ExitFromRoomPackage(); break; } result.FromByteArray(data); return(result); }
public void ExitFromRoomPackageDeserializationTest() { var buffer = _expected.ToByteArray(); SetTargetsPackage actual = new SetTargetsPackage(); ClientPackageType packageType = ClientPackageType.None; using (var stream = new MemoryStream(buffer)) { using (var reader = new BinaryReader(stream)) { var len = reader.ReadInt32(); packageType = (ClientPackageType)reader.ReadByte(); actual.FromByteArray(reader.ReadBytes(len - 1)); } } Assert.AreEqual(_expected.Type, packageType); Assert.AreEqual(_expected.Units.Length, actual.Units.Length); }
public void LoginPackageDeserializationTest() { LoginPackage expected = new LoginPackage(); var buffer = expected.ToByteArray(); ClientPackageType packageType = ClientPackageType.None; LoginPackage actual = new LoginPackage(); using (var stream = new MemoryStream(buffer)) { using (var reader = new BinaryReader(stream)) { var len = reader.ReadInt32(); packageType = (ClientPackageType)reader.ReadByte(); actual.FromByteArray(reader.ReadBytes(len - 1)); } } Assert.AreEqual(ClientPackageType.Login, packageType); }
public void ExitFromRoomPackageDeserializationTest() { ExitFromRoomPackage expected = new ExitFromRoomPackage { RoomId = 1 }; var buffer = expected.ToByteArray(); ExitFromRoomPackage actual = new ExitFromRoomPackage(); ClientPackageType packageType = ClientPackageType.None; using (var stream = new MemoryStream(buffer)) { using (var reader = new BinaryReader(stream)) { var len = reader.ReadInt32(); packageType = (ClientPackageType)reader.ReadByte(); actual.FromByteArray(reader.ReadBytes(len - 1)); } } Assert.AreEqual(expected.Type, packageType); Assert.AreEqual(expected.RoomId, actual.RoomId); }