@Test public void readFromWithNoReason() { MessageData messageData = new RawMessage(WireMessageCodes.DISCONNECT, BytesValue.fromHexString("0xC180")); DisconnectMessage disconnectMessage = DisconnectMessage.readFrom(messageData); DisconnectReason reason = disconnectMessage.getReason(); assertThat(reason).isEqualTo(DisconnectReason.UNKNOWN); }
@Test public void readFromWithReason() { MessageData messageData = new RawMessage(WireMessageCodes.DISCONNECT, BytesValue.fromHexString("0xC103")); DisconnectMessage disconnectMessage = DisconnectMessage.readFrom(messageData); DisconnectReason reason = disconnectMessage.getReason(); assertThat(reason).isEqualTo(DisconnectReason.USELESS_PEER); }
@Test public void createWithUnknownReason() { DisconnectMessage disconnectMessage = DisconnectMessage.create(DisconnectReason.UNKNOWN); assertThat(disconnectMessage.getReason()).isEqualTo(DisconnectReason.UNKNOWN); assertThat(disconnectMessage.getData().toString()).isEqualToIgnoringCase("0xC180"); } }
@Test public void createWithReason() { DisconnectMessage disconnectMessage = DisconnectMessage.create(DisconnectReason.USELESS_PEER); assertThat(disconnectMessage.getReason()).isEqualTo(DisconnectReason.USELESS_PEER); assertThat(disconnectMessage.getData().toString()).isEqualToIgnoringCase("0xC103"); }
@Test public void readFromWithInvalidReason() { String[] invalidReasons = { "0xC10C", "0xC155", // List containing a byte > 128 (negative valued) "0xC281FF", // List containing a multi-byte reason "0xC3820101" }; for (String invalidReason : invalidReasons) { MessageData messageData = new RawMessage(WireMessageCodes.DISCONNECT, BytesValue.fromHexString(invalidReason)); DisconnectMessage disconnectMessage = DisconnectMessage.readFrom(messageData); DisconnectReason reason = disconnectMessage.getReason(); assertThat(reason).isEqualTo(DisconnectReason.UNKNOWN); } }