@Test
@Ignore("This test fails on Java 12 and above")
public void decode() throws Exception {

    assumeThat(payloadClazzName + " not yet implemented", notYetSupportedDataType, not(hasItem(payloadClazzName)));
    ArrayList<Object> in = new ArrayList<>();
    SUT.encode(null, plcRequestContainer, in);
    assertThat(in, hasSize(1));
    syncInvoiceId();
    ArrayList<Object> out = new ArrayList<>();
    LOGGER.info("{}\nHexDump:\n{}", amsPacket, amsPacket.dump());
    SUT.decode(null, amsPacket, out);
    assertThat(out, hasSize(0));
    LOGGER.info("PlcRequestContainer {}", plcRequestContainer);
    InternalPlcResponse plcResponse = plcRequestContainer.getResponseFuture().get();
    // TODO: FIXME: this is different now after refactoring
    //ResponseItem responseItem = (ResponseItem) plcResponse.getResponseItem().get();
    //LOGGER.info("ResponseItem {}", responseItem);
    if (amsPacket instanceof AdsReadResponse) {
        // TODO: FIXME: this is different now after refactoring
        //PlcReadResponseItem readResponseItem = (PlcReadResponseItem) responseItem;
        //Object value = readResponseItem.getValues().get(0);
        //defaultAssert(value);
    }
}