### Question:
SoupBinTCPSession implements Closeable { protected void send(byte packetType) throws IOException { txHeader.clear(); txHeader.putShort((short)1); txHeader.put(packetType); txHeader.flip(); do { channel.write(txHeader); } while (txHeader.hasRemaining()); sentData(); } protected  SoupBinTCPSession(Clock clock, SocketChannel channel, int maxPayloadLength,
            byte heartbeatPacketType); SocketChannel getChannel(); int receive(); void keepAlive(); @Override void close();  }### Answer:
@Test public void maximumPacketLengthForOutboundUnsequencedData() throws Exception { client.send(wrap(repeat('X', MAX_TX_PAYLOAD_LENGTH))); }
@Test(expected=SoupBinTCPException.class) public void maximumPacketLengthExceededForOutboundUnsequencedData() throws Exception { client.send(wrap(repeat('X', MAX_TX_PAYLOAD_LENGTH + 1))); }
@Test public void maximumPacketLengthForOutboundSequencedData() throws Exception { server.send(wrap(repeat('X', MAX_TX_PAYLOAD_LENGTH))); }
@Test(expected=SoupBinTCPException.class) public void maximumPacketLengthExceededForOutboundSequencedData() throws Exception { server.send(wrap(repeat('X', MAX_TX_PAYLOAD_LENGTH + 1))); }