Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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");
        }
Ejemplo n.º 5
0
        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");
        }
Ejemplo n.º 6
0
        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);
        }