@SuppressWarnings({"rawtypes"})
    public static void validateOutboundMessageAndMigrate(String testCaseName, Map<String, String> options, Element referenceXml, List<String> parserArguments, byte[] data, ByteOrder byteOrder, boolean autoMigrate, URI siteURI) throws DriverTestsuiteException {
        MessageInput<?> messageInput = MessageResolver.getMessageInput(options, referenceXml.getName(), parserArguments);
        validateOutboundMessageAndMigrate(testCaseName, messageInput, referenceXml, data, byteOrder, autoMigrate, siteURI);
    }
Validates a outbound message and migrates it to the expectation if the parameter {@code autoMigrate} is set to true.
<p>
Passed options should contain a single 'package' option or 'protocolName' and 'outputFlavor'.
In case if package is not specified then protocol name and output flavor (e.g read-write) are
used to construct lookup package.

@param testCaseName    name of the testcase
@param options         map with specific test/lookup options.
@param referenceXml    the xml we expect the outbound message to be
@param parserArguments the parser arguments to create an instance of the message
@param data            the bytes of the message
@param byteOrder       the byte-oder being used
@param autoMigrate     indicates if we want to migrate to a new version
@param siteURI         the file which we want to auto migrate
@throws DriverTestsuiteException if something goes wrong
plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/migration/MessageValidatorAndMigrator.java