### Question:
Packet { public Packet(PacketType type) { this(type, PacketTypes.fromType(type).get(), null); } Packet(PacketType type);  Packet(PacketType type, Object packet); @VisibleForTesting  Packet(PacketType type, Class<?> clazz, Object packet); PacketType packetType(); Class<?> mcPacketClass(); Object mcPacket(); Packet transmute(BiConsumer<Class<?>, Object> consumer); Packet inject(Object injectedPacket); Packet inject(Function<Class<?>, Object> function); Packet inject(Map<String, Object> fields); Injector injector(); Accessor accessor();  }### Answer:
@Test public void packetTest() { Packet packet = new Packet(type, FakePacket.class, new FakePacket()); Assert.assertEquals(type, packet.packetType()); Assert.assertEquals(FakePacket.class, packet.mcPacketClass()); Assert.assertNotNull(packet.mcPacket()); packet.inject(ImmutableMap.of("x", 1, "y", 2, "z", 3)); packet.inject(clazz -> packet.mcPacket()); check(packet); }