From 302df0299ea70dec3baee4a7a9e6edec69685e36 Mon Sep 17 00:00:00 2001 From: Andrew Steinborn Date: Thu, 26 Jul 2018 13:17:10 -0400 Subject: [PATCH] Another test for sanity. --- .../proxy/protocol/PacketRegistryTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test/java/com/velocitypowered/proxy/protocol/PacketRegistryTest.java b/src/test/java/com/velocitypowered/proxy/protocol/PacketRegistryTest.java index a5c3ff2bd..c5705221c 100644 --- a/src/test/java/com/velocitypowered/proxy/protocol/PacketRegistryTest.java +++ b/src/test/java/com/velocitypowered/proxy/protocol/PacketRegistryTest.java @@ -1,6 +1,7 @@ package com.velocitypowered.proxy.protocol; import com.velocitypowered.proxy.protocol.packets.Handshake; +import com.velocitypowered.proxy.protocol.packets.Ping; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; @@ -9,6 +10,8 @@ class PacketRegistryTest { private StateRegistry.PacketRegistry setupRegistry() { StateRegistry.PacketRegistry registry = new StateRegistry.PacketRegistry(ProtocolConstants.Direction.TO_CLIENT, StateRegistry.HANDSHAKE); registry.register(Handshake.class, Handshake::new, new StateRegistry.PacketMapping(0x00, 1)); + registry.register(Ping.class, Ping::new, new StateRegistry.PacketMapping(0x01, 1), + new StateRegistry.PacketMapping(0x02, 5)); return registry; } @@ -44,5 +47,18 @@ class PacketRegistryTest { void failOnNoMappings() { StateRegistry.PacketRegistry registry = new StateRegistry.PacketRegistry(ProtocolConstants.Direction.TO_CLIENT, StateRegistry.HANDSHAKE); assertThrows(IllegalArgumentException.class, () -> registry.register(Handshake.class, Handshake::new)); + assertThrows(IllegalArgumentException.class, () -> registry.getId(new Handshake(), 0)); + } + + @Test + void packetRegistryProvidesCorrectVersionsForMultipleMappings() { + StateRegistry.PacketRegistry registry = setupRegistry(); + assertNotNull(registry.createPacket(1, 1), "Packet was not found in registry despite being being registered with ID 1 and version 1"); + assertNotNull(registry.createPacket(1, 2), "Packet was not found in registry despite being being registered with ID 1 and version 1 (we are looking up version 2)"); + assertNotNull(registry.createPacket(2, 5), "Packet was not found in registry despite being being registered with ID 2 and version 5"); + assertNotNull(registry.createPacket(2, 6), "Packet was not found in registry despite being being registered with ID 2 and version 5 (we are looking up version 6)"); + + assertEquals(1, registry.getId(new Ping(), 1), "Wrong ID provided from registry"); + assertEquals(2, registry.getId(new Ping(), 5), "Wrong ID provided from registry"); } } \ No newline at end of file