MessagePacker.Unpack<T> moved to MessagePackerTests because it's only used for tests

This commit is contained in:
vis2k 2020-10-08 11:02:09 +02:00
parent 8d06b8737b
commit f59af28ccb
7 changed files with 91 additions and 80 deletions

View File

@ -42,22 +42,6 @@ public static void Pack<T>(T message, NetworkWriter writer)
writer.Write(message); writer.Write(message);
} }
// unpack a message we received
public static T Unpack<T>(byte[] data)
where T : struct, NetworkMessage
{
using (PooledNetworkReader networkReader = NetworkReaderPool.GetReader(data))
{
int msgType = GetId<T>();
int id = networkReader.ReadUInt16();
if (id != msgType)
throw new FormatException("Invalid message, could not unpack " + typeof(T).FullName);
return networkReader.Read<T>();
}
}
// unpack message after receiving // unpack message after receiving
// -> pass NetworkReader so it's less strange if we create it in here // -> pass NetworkReader so it's less strange if we create it in here
// and pass it upwards. // and pass it upwards.

View File

@ -20,7 +20,7 @@ public void CommandMessage()
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
// deserialize the same data - do we get the same result? // deserialize the same data - do we get the same result?
CommandMessage fresh = MessagePacker.Unpack<CommandMessage>(arr); CommandMessage fresh = MessagePackerTest.Unpack<CommandMessage>(arr);
Assert.That(fresh.netId, Is.EqualTo(message.netId)); Assert.That(fresh.netId, Is.EqualTo(message.netId));
Assert.That(fresh.componentIndex, Is.EqualTo(message.componentIndex)); Assert.That(fresh.componentIndex, Is.EqualTo(message.componentIndex));
Assert.That(fresh.functionHash, Is.EqualTo(message.functionHash)); Assert.That(fresh.functionHash, Is.EqualTo(message.functionHash));
@ -38,7 +38,7 @@ public void ConnectMessage()
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
Assert.DoesNotThrow(() => Assert.DoesNotThrow(() =>
{ {
MessagePacker.Unpack<ConnectMessage>(arr); MessagePackerTest.Unpack<ConnectMessage>(arr);
}); });
} }
@ -50,7 +50,7 @@ public void DisconnectMessage()
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
Assert.DoesNotThrow(() => Assert.DoesNotThrow(() =>
{ {
MessagePacker.Unpack<DisconnectMessage>(arr); MessagePackerTest.Unpack<DisconnectMessage>(arr);
}); });
} }
@ -60,7 +60,7 @@ public void ErrorMessage()
// try setting value with constructor // try setting value with constructor
ErrorMessage message = new ErrorMessage(42); ErrorMessage message = new ErrorMessage(42);
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
ErrorMessage fresh = MessagePacker.Unpack<ErrorMessage>(arr); ErrorMessage fresh = MessagePackerTest.Unpack<ErrorMessage>(arr);
Assert.That(fresh.value, Is.EqualTo(message.value)); Assert.That(fresh.value, Is.EqualTo(message.value));
} }
@ -70,7 +70,7 @@ public void NetworkPingMessage()
// try setting value with constructor // try setting value with constructor
NetworkPingMessage message = new NetworkPingMessage(DateTime.Now.ToOADate()); NetworkPingMessage message = new NetworkPingMessage(DateTime.Now.ToOADate());
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
NetworkPingMessage fresh = MessagePacker.Unpack<NetworkPingMessage>(arr); NetworkPingMessage fresh = MessagePackerTest.Unpack<NetworkPingMessage>(arr);
Assert.That(fresh.clientTime, Is.EqualTo(message.clientTime)); Assert.That(fresh.clientTime, Is.EqualTo(message.clientTime));
} }
@ -84,7 +84,7 @@ public void NetworkPongMessage()
serverTime = DateTime.Now.ToOADate(), serverTime = DateTime.Now.ToOADate(),
}; };
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
NetworkPongMessage fresh = MessagePacker.Unpack<NetworkPongMessage>(arr); NetworkPongMessage fresh = MessagePackerTest.Unpack<NetworkPongMessage>(arr);
Assert.That(fresh.clientTime, Is.EqualTo(message.clientTime)); Assert.That(fresh.clientTime, Is.EqualTo(message.clientTime));
Assert.That(fresh.serverTime, Is.EqualTo(message.serverTime)); Assert.That(fresh.serverTime, Is.EqualTo(message.serverTime));
} }
@ -97,7 +97,7 @@ public void NotReadyMessage()
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
Assert.DoesNotThrow(() => Assert.DoesNotThrow(() =>
{ {
NotReadyMessage fresh = MessagePacker.Unpack<NotReadyMessage>(arr); NotReadyMessage fresh = MessagePackerTest.Unpack<NotReadyMessage>(arr);
}); });
} }
@ -110,7 +110,7 @@ public void ObjectDestroyMessage()
netId = 42, netId = 42,
}; };
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
ObjectDestroyMessage fresh = MessagePacker.Unpack<ObjectDestroyMessage>(arr); ObjectDestroyMessage fresh = MessagePackerTest.Unpack<ObjectDestroyMessage>(arr);
Assert.That(fresh.netId, Is.EqualTo(message.netId)); Assert.That(fresh.netId, Is.EqualTo(message.netId));
} }
@ -123,7 +123,7 @@ public void ObjectHideMessage()
netId = 42, netId = 42,
}; };
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
ObjectHideMessage fresh = MessagePacker.Unpack<ObjectHideMessage>(arr); ObjectHideMessage fresh = MessagePackerTest.Unpack<ObjectHideMessage>(arr);
Assert.That(fresh.netId, Is.EqualTo(message.netId)); Assert.That(fresh.netId, Is.EqualTo(message.netId));
} }
@ -135,7 +135,7 @@ public void ReadyMessage()
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
Assert.DoesNotThrow(() => Assert.DoesNotThrow(() =>
{ {
ReadyMessage fresh = MessagePacker.Unpack<ReadyMessage>(arr); ReadyMessage fresh = MessagePackerTest.Unpack<ReadyMessage>(arr);
}); });
} }
@ -151,7 +151,7 @@ public void RpcMessage()
payload = new ArraySegment<byte>(new byte[] { 0x01, 0x02 }) payload = new ArraySegment<byte>(new byte[] { 0x01, 0x02 })
}; };
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
RpcMessage fresh = MessagePacker.Unpack<RpcMessage>(arr); RpcMessage fresh = MessagePackerTest.Unpack<RpcMessage>(arr);
Assert.That(fresh.netId, Is.EqualTo(message.netId)); Assert.That(fresh.netId, Is.EqualTo(message.netId));
Assert.That(fresh.componentIndex, Is.EqualTo(message.componentIndex)); Assert.That(fresh.componentIndex, Is.EqualTo(message.componentIndex));
Assert.That(fresh.functionHash, Is.EqualTo(message.functionHash)); Assert.That(fresh.functionHash, Is.EqualTo(message.functionHash));
@ -183,7 +183,7 @@ void DoTest(ulong testSceneId)
payload = new ArraySegment<byte>(new byte[] { 0x01, 0x02 }) payload = new ArraySegment<byte>(new byte[] { 0x01, 0x02 })
}; };
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
SpawnMessage fresh = MessagePacker.Unpack<SpawnMessage>(arr); SpawnMessage fresh = MessagePackerTest.Unpack<SpawnMessage>(arr);
Assert.That(fresh.netId, Is.EqualTo(message.netId)); Assert.That(fresh.netId, Is.EqualTo(message.netId));
Assert.That(fresh.isLocalPlayer, Is.EqualTo(message.isLocalPlayer)); Assert.That(fresh.isLocalPlayer, Is.EqualTo(message.isLocalPlayer));
Assert.That(fresh.isOwner, Is.EqualTo(message.isOwner)); Assert.That(fresh.isOwner, Is.EqualTo(message.isOwner));
@ -210,7 +210,7 @@ public void UpdateVarsMessage()
payload = new ArraySegment<byte>(new byte[] { 0x01, 0x02 }) payload = new ArraySegment<byte>(new byte[] { 0x01, 0x02 })
}; };
byte[] arr = MessagePackerTest.PackToByteArray(message); byte[] arr = MessagePackerTest.PackToByteArray(message);
UpdateVarsMessage fresh = MessagePacker.Unpack<UpdateVarsMessage>(arr); UpdateVarsMessage fresh = MessagePackerTest.Unpack<UpdateVarsMessage>(arr);
Assert.That(fresh.netId, Is.EqualTo(message.netId)); Assert.That(fresh.netId, Is.EqualTo(message.netId));
Assert.That(fresh.payload.Count, Is.EqualTo(message.payload.Count)); Assert.That(fresh.payload.Count, Is.EqualTo(message.payload.Count));
for (int i = 0; i < fresh.payload.Count; ++i) for (int i = 0; i < fresh.payload.Count; ++i)

View File

@ -48,7 +48,7 @@ public void TestCustomRW()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
QuestMessage unpacked = MessagePacker.Unpack<QuestMessage>(data); QuestMessage unpacked = MessagePackerTest.Unpack<QuestMessage>(data);
Assert.That(unpacked.quest.Id, Is.EqualTo(100)); Assert.That(unpacked.quest.Id, Is.EqualTo(100));
} }

View File

@ -25,7 +25,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
int[] unpackedCollection = unpacked.collection; int[] unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection, Is.Null.Or.Empty); Assert.That(unpackedCollection, Is.Null.Or.Empty);
@ -41,7 +41,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
int[] unpackedCollection = unpacked.collection; int[] unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -61,7 +61,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
int[] unpackedCollection = unpacked.collection; int[] unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -89,7 +89,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
string[] unpackedCollection = unpacked.collection; string[] unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection, Is.Null.Or.Empty); Assert.That(unpackedCollection, Is.Null.Or.Empty);
@ -105,7 +105,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
string[] unpackedCollection = unpacked.collection; string[] unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -125,7 +125,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
string[] unpackedCollection = unpacked.collection; string[] unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -153,7 +153,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
Vector3[] unpackedCollection = unpacked.collection; Vector3[] unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection, Is.Null.Or.Empty); Assert.That(unpackedCollection, Is.Null.Or.Empty);
@ -169,7 +169,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
Vector3[] unpackedCollection = unpacked.collection; Vector3[] unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -189,7 +189,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
Vector3[] unpackedCollection = unpacked.collection; Vector3[] unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -217,7 +217,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
FloatStringStruct[] unpackedCollection = unpacked.collection; FloatStringStruct[] unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection, Is.Null.Or.Empty); Assert.That(unpackedCollection, Is.Null.Or.Empty);
@ -233,7 +233,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
FloatStringStruct[] unpackedCollection = unpacked.collection; FloatStringStruct[] unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -253,7 +253,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
FloatStringStruct[] unpackedCollection = unpacked.collection; FloatStringStruct[] unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -281,7 +281,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ClassWithNoConstructor[] unpackedCollection = unpacked.collection; ClassWithNoConstructor[] unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection, Is.Null.Or.Empty); Assert.That(unpackedCollection, Is.Null.Or.Empty);
@ -297,7 +297,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ClassWithNoConstructor[] unpackedCollection = unpacked.collection; ClassWithNoConstructor[] unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -317,7 +317,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ClassWithNoConstructor[] unpackedCollection = unpacked.collection; ClassWithNoConstructor[] unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -345,7 +345,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<int> unpackedCollection = unpacked.collection; ArraySegment<int> unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection.Array, Is.Null.Or.Empty); Assert.That(unpackedCollection.Array, Is.Null.Or.Empty);
@ -368,7 +368,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<int> unpackedCollection = unpacked.collection; ArraySegment<int> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection.Array); Assert.IsNotNull(unpackedCollection.Array);
@ -395,7 +395,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<int> unpackedCollection = unpacked.collection; ArraySegment<int> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection.Array); Assert.IsNotNull(unpackedCollection.Array);
@ -423,7 +423,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<string> unpackedCollection = unpacked.collection; ArraySegment<string> unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection.Array, Is.Null.Or.Empty); Assert.That(unpackedCollection.Array, Is.Null.Or.Empty);
@ -446,7 +446,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<string> unpackedCollection = unpacked.collection; ArraySegment<string> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection.Array); Assert.IsNotNull(unpackedCollection.Array);
@ -473,7 +473,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<string> unpackedCollection = unpacked.collection; ArraySegment<string> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection.Array); Assert.IsNotNull(unpackedCollection.Array);
@ -501,7 +501,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<Vector3> unpackedCollection = unpacked.collection; ArraySegment<Vector3> unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection.Array, Is.Null.Or.Empty); Assert.That(unpackedCollection.Array, Is.Null.Or.Empty);
@ -524,7 +524,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<Vector3> unpackedCollection = unpacked.collection; ArraySegment<Vector3> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection.Array); Assert.IsNotNull(unpackedCollection.Array);
@ -551,7 +551,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<Vector3> unpackedCollection = unpacked.collection; ArraySegment<Vector3> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection.Array); Assert.IsNotNull(unpackedCollection.Array);
@ -579,7 +579,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<FloatStringStruct> unpackedCollection = unpacked.collection; ArraySegment<FloatStringStruct> unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection.Array, Is.Null.Or.Empty); Assert.That(unpackedCollection.Array, Is.Null.Or.Empty);
@ -602,7 +602,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<FloatStringStruct> unpackedCollection = unpacked.collection; ArraySegment<FloatStringStruct> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection.Array); Assert.IsNotNull(unpackedCollection.Array);
@ -629,7 +629,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<FloatStringStruct> unpackedCollection = unpacked.collection; ArraySegment<FloatStringStruct> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection.Array); Assert.IsNotNull(unpackedCollection.Array);
@ -657,7 +657,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<ClassWithNoConstructor> unpackedCollection = unpacked.collection; ArraySegment<ClassWithNoConstructor> unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection.Array, Is.Null.Or.Empty); Assert.That(unpackedCollection.Array, Is.Null.Or.Empty);
@ -680,7 +680,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<ClassWithNoConstructor> unpackedCollection = unpacked.collection; ArraySegment<ClassWithNoConstructor> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection.Array); Assert.IsNotNull(unpackedCollection.Array);
@ -707,7 +707,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
ArraySegment<ClassWithNoConstructor> unpackedCollection = unpacked.collection; ArraySegment<ClassWithNoConstructor> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection.Array); Assert.IsNotNull(unpackedCollection.Array);
@ -735,7 +735,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<int> unpackedCollection = unpacked.collection; List<int> unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection, Is.Null.Or.Empty); Assert.That(unpackedCollection, Is.Null.Or.Empty);
@ -751,7 +751,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<int> unpackedCollection = unpacked.collection; List<int> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -771,7 +771,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<int> unpackedCollection = unpacked.collection; List<int> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -799,7 +799,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<string> unpackedCollection = unpacked.collection; List<string> unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection, Is.Null.Or.Empty); Assert.That(unpackedCollection, Is.Null.Or.Empty);
@ -815,7 +815,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<string> unpackedCollection = unpacked.collection; List<string> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -835,7 +835,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<string> unpackedCollection = unpacked.collection; List<string> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -863,7 +863,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<Vector3> unpackedCollection = unpacked.collection; List<Vector3> unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection, Is.Null.Or.Empty); Assert.That(unpackedCollection, Is.Null.Or.Empty);
@ -879,7 +879,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<Vector3> unpackedCollection = unpacked.collection; List<Vector3> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -899,7 +899,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<Vector3> unpackedCollection = unpacked.collection; List<Vector3> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -927,7 +927,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<FloatStringStruct> unpackedCollection = unpacked.collection; List<FloatStringStruct> unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection, Is.Null.Or.Empty); Assert.That(unpackedCollection, Is.Null.Or.Empty);
@ -943,7 +943,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<FloatStringStruct> unpackedCollection = unpacked.collection; List<FloatStringStruct> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -963,7 +963,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<FloatStringStruct> unpackedCollection = unpacked.collection; List<FloatStringStruct> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -991,7 +991,7 @@ public void SendsNull()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<ClassWithNoConstructor> unpackedCollection = unpacked.collection; List<ClassWithNoConstructor> unpackedCollection = unpacked.collection;
Assert.That(unpackedCollection, Is.Null.Or.Empty); Assert.That(unpackedCollection, Is.Null.Or.Empty);
@ -1007,7 +1007,7 @@ public void SendsEmpty()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<ClassWithNoConstructor> unpackedCollection = unpacked.collection; List<ClassWithNoConstructor> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);
@ -1027,7 +1027,7 @@ public void SendsData()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
Message unpacked = MessagePacker.Unpack<Message>(data); Message unpacked = MessagePackerTest.Unpack<Message>(data);
List<ClassWithNoConstructor> unpackedCollection = unpacked.collection; List<ClassWithNoConstructor> unpackedCollection = unpacked.collection;
Assert.IsNotNull(unpackedCollection); Assert.IsNotNull(unpackedCollection);

View File

@ -23,6 +23,22 @@ public static byte[] PackToByteArray<T>(T message) where T : struct, NetworkMess
} }
} }
// this was previously in MessagePacker, but we only need it for tests
public static T Unpack<T>(byte[] data)
where T : struct, NetworkMessage
{
using (PooledNetworkReader networkReader = NetworkReaderPool.GetReader(data))
{
int msgType = MessagePacker.GetId<T>();
int id = networkReader.ReadUInt16();
if (id != msgType)
throw new FormatException("Invalid message, could not unpack " + typeof(T).FullName);
return networkReader.Read<T>();
}
}
[Test] [Test]
public void TestPacking() public void TestPacking()
{ {
@ -34,7 +50,7 @@ public void TestPacking()
byte[] data = PackToByteArray(message); byte[] data = PackToByteArray(message);
TestMessage unpacked = MessagePacker.Unpack<TestMessage>(data); TestMessage unpacked = Unpack<TestMessage>(data);
Assert.That(unpacked.sceneName, Is.EqualTo("Hello world")); Assert.That(unpacked.sceneName, Is.EqualTo("Hello world"));
Assert.That(unpacked.sceneOperation, Is.EqualTo(SceneOperation.LoadAdditive)); Assert.That(unpacked.sceneOperation, Is.EqualTo(SceneOperation.LoadAdditive));
@ -49,7 +65,7 @@ public void UnpackWrongMessage()
Assert.Throws<FormatException>(() => Assert.Throws<FormatException>(() =>
{ {
DisconnectMessage unpacked = MessagePacker.Unpack<DisconnectMessage>(data); DisconnectMessage unpacked = Unpack<DisconnectMessage>(data);
}); });
} }
@ -73,7 +89,7 @@ public void TestUnpackIdMismatch()
Assert.Throws<FormatException>(() => Assert.Throws<FormatException>(() =>
{ {
TestMessage unpacked = MessagePacker.Unpack<TestMessage>(data); TestMessage unpacked = Unpack<TestMessage>(data);
}); });
} }

View File

@ -33,7 +33,7 @@ public void TestWriteScriptableObject()
byte[] data = MessagePackerTest.PackToByteArray(message); byte[] data = MessagePackerTest.PackToByteArray(message);
ScriptableObjectMessage unpacked = MessagePacker.Unpack<ScriptableObjectMessage>(data); ScriptableObjectMessage unpacked = MessagePackerTest.Unpack<ScriptableObjectMessage>(data);
Assert.That(unpacked.scriptableObject, Is.Not.Null); Assert.That(unpacked.scriptableObject, Is.Not.Null);
Assert.That(unpacked.scriptableObject.someData, Is.EqualTo(10)); Assert.That(unpacked.scriptableObject.someData, Is.EqualTo(10));

View File

@ -2,6 +2,17 @@
"m_Name": "Settings", "m_Name": "Settings",
"m_Path": "ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json", "m_Path": "ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json",
"m_Dictionary": { "m_Dictionary": {
"m_DictionaryValues": [] "m_DictionaryValues": [
{
"type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
"key": "Path",
"value": "{\"m_Value\":\"/Users/qwerty/x/dev/project_Mirror/Repository\"}"
},
{
"type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
"key": "HistoryPath",
"value": "{\"m_Value\":\"/Users/qwerty/x/dev/project_Mirror/Repository\"}"
}
]
} }
} }