@Test
    void testXMLTransformer() {
        pipelineScopeRunnable.scopeRunnable(() -> {
            final PipelineFactory pipelineFactory = pipelineFactoryProvider.get();
            final RecordCount recordCount = recordCountProvider.get();
            final ErrorReceiverProxy errorReceiver = errorReceiverProvider.get();
            final FeedHolder feedHolder = feedHolderProvider.get();

            // Setup the text converter.
            final InputStream textConverterInputStream = StroomPipelineTestFileUtil.getInputStream(FORMAT);
            final DocRef textConverterRef = textConverterStore.createDocument("Test Text Converter");
            final TextConverterDoc textConverter = textConverterStore.readDocument(textConverterRef);
            textConverter.setConverterType(TextConverterType.DATA_SPLITTER);
            textConverter.setData(StreamUtil.streamToString(textConverterInputStream));
            textConverterStore.writeDocument(textConverter);

            // Setup the XSLT.
            final InputStream xsltInputStream = StroomPipelineTestFileUtil.getInputStream(XSLT_LOCATION);
            final DocRef xsltRef = xsltStore.createDocument("Test");
            final XsltDoc xsltDoc = xsltStore.readDocument(xsltRef);
            xsltDoc.setData(StreamUtil.streamToString(xsltInputStream));
            xsltStore.writeDocument(xsltDoc);

            final Path testDir = getCurrentTestDir();

            // Delete any output file.
            final Path outputFile = testDir.resolve("XMLHttpBlankTokenFix.xml");
            final Path outputLockFile = testDir.resolve("XMLHttpBlankTokenFix.xml.lock");
            FileUtil.deleteFile(outputFile);
            FileUtil.deleteFile(outputLockFile);

            // Setup the error handler.
            final LoggingErrorReceiver loggingErrorReceiver = new LoggingErrorReceiver();
            errorReceiver.setErrorReceiver(loggingErrorReceiver);

            // Create the pipeline.
            final DocRef pipelineRef = PipelineTestUtil.createTestPipeline(pipelineStore,
                    StroomPipelineTestFileUtil.getString(PIPELINE));
            final PipelineDoc pipelineDoc = pipelineStore.readDocument(pipelineRef);
            pipelineDoc.getPipelineData().addProperty(
                    PipelineDataUtil.createProperty(CombinedParser.DEFAULT_NAME, "textConverter", textConverterRef));
            pipelineDoc.getPipelineData()
                    .addProperty(PipelineDataUtil.createProperty("translationFilter", "xslt", xsltRef));
            pipelineStore.writeDocument(pipelineDoc);

            // Create the parser.
            final PipelineData pipelineData = pipelineDataCache.get(pipelineDoc);
            final Pipeline pipeline = pipelineFactory.create(pipelineData, new SimpleTaskContext());

//            feedHolder.setFeed(new Feed());

//            // Setup the meta data holder.
//            metaDataHolder.setMetaDataProvider(new StreamMetaDataProvider(
//            metaHolder, streamProcessorService, pipelineStore));

            // Set the input file to transform.
            final InputStream input = StroomPipelineTestFileUtil.getInputStream(INPUT);
            pipeline.process(input);

            final String xml = StreamUtil.fileToString(outputFile);
            System.out.println(xml);

            assertThat(recordCount.getRead() > 0)
                    .as(errorReceiver.toString())
                    .isTrue();
            assertThat(recordCount.getWritten() > 0)
                    .as(errorReceiver.toString())
                    .isTrue();
            assertThat(recordCount.getWritten())
                    .as(errorReceiver.toString())
                    .isEqualTo(recordCount.getRead());
            assertThat(recordCount.getRead())
                    .as(errorReceiver.toString())
                    .isEqualTo(EXPECTED_RESULTS);
            assertThat(recordCount.getWritten())
                    .as(errorReceiver.toString())
                    .isEqualTo(EXPECTED_RESULTS);
            assertThat(loggingErrorReceiver.getRecords(Severity.WARNING))
                    .as(errorReceiver.toString())
                    .isEqualTo(0);
            assertThat(loggingErrorReceiver.getRecords(Severity.ERROR))
                    .as(errorReceiver.toString())
                    .isEqualTo(0);
            assertThat(loggingErrorReceiver.getRecords(Severity.FATAL_ERROR))
                    .as(errorReceiver.toString())
                    .isEqualTo(0);

            if (!loggingErrorReceiver.isAllOk()) {
                fail(errorReceiver.toString());
            }
        });
    }
Tests the XMLTransformer on some sample Windows XML events.
stroom-app/src/test/java/stroom/pipeline/TestXMLHttpBlankTokenFix.java