public void Given_connection_in_PreLogin_status_When_receives_ConnectToGameServer_Then_enters_PreGame_status() { var inputData = new MemoryBatchedStream(new List <byte[]> { FakePackets.ConnectToGameServer }); var connection = new ServerConnection(ServerConnectionStatus.PreLogin); connection.Receive(inputData); connection.Status.Should().Be(ServerConnectionStatus.PreGame); }
public void Can_receive_prelogin_packet() { var inputData = new MemoryBatchedStream(new List <byte[]> { FakePackets.GameServerList }); var expectedPackets = new[] { new Packet(0xA8, FakePackets.GameServerList) }; var connection = new ServerConnection(); var receivedPackets = new List <Packet>(); connection.PacketReceived += (sender, packet) => receivedPackets.Add(packet); connection.Receive(inputData); expectedPackets.AreEqual(receivedPackets); }
public void Can_receive_one_game_packets() { var inputData = new MemoryBatchedStream(new List <byte[]> { new byte[] { 0xB6, 0xA0, 0xFE, 0xF9 } }); var expectedPackets = new[] { new Packet(0xB9, FakePackets.EnableLockedClientFeatures) }; var connection = CreateEncryptedConnection(ServerConnectionStatus.Game); var receivedPackets = new List <Packet>(); connection.PacketReceived += (sender, packet) => receivedPackets.Add(packet); connection.Process(inputData); expectedPackets.AreEqual(receivedPackets); }
public void Can_write_diagnostic_info_about_received_packet() { var inputData = new MemoryBatchedStream(new List <byte[]> { new byte[] { 0xB6, 0xA0, 0xFE, 0xE6 } }); var diagnosticStream = new TextDiagnosticPullStream(packetRegistry); var connection = CreateEncryptedConnection(ServerConnectionStatus.Game, diagnosticStream); connection.Process(inputData); var output = diagnosticStream.Flush(); output.Should().Contain("0xB6, 0xA0, 0xFE, 0xE6") .And.Contain("0xB9, 0x80, 0x1F"); }
public void Can_write_diagnostic_info_about_received_packet() { var inputData = new MemoryBatchedStream(new List <byte[]> { new byte[] { 0xB6, 0xA0, 0xFE, 0xE6 } }); var diagnosticStream = new TextDiagnosticPullStream(); var connection = new ServerConnection(ServerConnectionStatus.Game, diagnosticStream, NullDiagnosticPushStream.Instance); connection.Receive(inputData); var output = diagnosticStream.Flush(); output.Should().Contain("0xB6, 0xA0, 0xFE, 0xE6") .And.Contain("0xB9, 0x80, 0x1F"); }
public void Can_receive_two_Game_packets() { var inputData = new MemoryBatchedStream(new List <byte[]> { FakePackets.EnableLockedClientFeaturesEncrypted, FakePackets.CharactersStartingLocationsEncrypted }); var expectedPackets = new[] { new Packet(0xB9, FakePackets.EnableLockedClientFeatures), new Packet(PacketDefinitions.CharactersStartingLocations.Id, FakePackets.CharactersStartingLocations), }; var connection = new ServerConnection(ServerConnectionStatus.Game); var receivedPackets = new List <Packet>(); connection.PacketReceived += (sender, packet) => receivedPackets.Add(packet); connection.Receive(inputData); expectedPackets.AreEqual(receivedPackets); }