### Question:
RpcRequestDecoder { public Optional<T> complete() throws RpcException { Optional<T> maybeRequest = Optional.empty(); if (!complete) { maybeRequest = decodeRequest(Unpooled.EMPTY_BUFFER); } decoder.complete(); if (!complete) throw new PayloadTruncatedException(); return maybeRequest; } RpcRequestDecoder(final Class<T> requestType, final RpcEncoding encoding); Optional<T> decodeRequest(final ByteBuf input); Optional<T> complete();  }### Answer:
@Test public void shouldProcessEmptyMessage() throws Exception { RpcRequestDecoder<EmptyMessage> decoder = new RpcRequestDecoder<>(EmptyMessage.class, ENCODING); assertThat(decoder.complete()).isNotEmpty().contains(EmptyMessage.EMPTY_MESSAGE); }