/// <summary>
		/// Parsuje wiadomość.
		/// </summary>
		/// <param name="msg">Wiadomość.</param>
		public ServerWelcome(Message msg)
		{
			if (msg.Type != MessageType.Welcome)
			{
				throw new InvalidCastException("Cannot convert this message to WelcomeMessage");
			}
			BinarySerializer s = new BinarySerializer(msg.Data);
			this.ServerVersion = s.GetVersion();
			byte flags = s.GetByte();
			this.GameName = s.GetString();
		}
		public void Deserialization()
		{
			var serializer = new BinarySerializer(DataSerialized);
			Assert.AreEqual(true, serializer.GetBool());
			Assert.AreEqual((byte)0, serializer.GetByte());
			Assert.AreEqual((byte)1, serializer.GetByte());
			Assert.AreEqual('b', serializer.GetChar());
			Assert.AreEqual((byte)0, serializer.GetByte());
			Assert.AreEqual(1d, serializer.GetDouble());
			Assert.AreEqual(1d, serializer.GetDouble());
			Assert.AreEqual((short)-5, serializer.GetInt16());
			Assert.AreEqual(-6, serializer.GetInt32());
			Assert.AreEqual(7L, serializer.GetInt64());
			Assert.AreEqual((sbyte)-2, serializer.GetSByte());
			Assert.AreEqual(1f, serializer.GetFloat());
			Assert.AreEqual((ushort)9, serializer.GetUInt16());
			Assert.AreEqual(10U, serializer.GetUInt32());
			Assert.AreEqual(11UL, serializer.GetUInt64());
			Assert.AreEqual(new Version(1, 2, 3, 4), serializer.GetVersion());
		}