protected void disableTracing() { Tracing.create(stagingClient).disable(); }
protected void enableTracing() { Tracing.create(stagingClient).enable(); }
@AfterEach public void afterEach() { Tracing.create(flowRunnerClient).disable(); clearDatabases(HubConfig.DEFAULT_JOB_NAME, HubConfig.DEFAULT_FINAL_NAME); }
@BeforeEach public void setup() throws IOException, URISyntaxException { XMLUnit.setIgnoreWhitespace(true); enableDebugging(); clearDatabases(HubConfig.DEFAULT_STAGING_NAME, HubConfig.DEFAULT_JOB_NAME, HubConfig.DEFAULT_FINAL_NAME); clearUserModules(); deleteProjectDir(); createProjectDir(); dataHub.initProject(); FileUtils.copyDirectory( new File("src/test/resources/tracing-test/plugins"), new File(PROJECT_PATH + "/plugins") ); installUserModules(adminHubConfig, true); //Disable tracing that may have been enabled in previous tests Tracing.create(flowRunnerClient).disable(); }
@Test public void runJSONErrorFlowWithoutTracing() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeJSONError"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(0, getFinalDocCount()); assertEquals(5, getTracingDocCount()); JsonNode node = jobDocMgr.search(allButCollectors(), 1).next().getContent(new JacksonHandle()).get(); System.out.println(node.asText()); assertEquals(1, node.get("trace").get("steps").size()); assertEquals("content", node.get("trace").get("steps").get(0).get("label").asText()); }
@Test public void runSjsJsonFlowWithBinaryContent() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); enableTracing(); assertTrue(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeSjsJsonWithBinary"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(5, getFinalDocCount()); assertEquals(6, getTracingDocCount()); DocumentRecord doc = finalDocMgr.read("1").next(); String finalDoc= doc.getContent(new StringHandle()).get(); assertJsonEqual(getResource("tracing-test/traces/finalSjsJsonDoc.json"), finalDoc, true); JsonNode node = jobDocMgr.search(allButCollectors(), 1).next().getContent(new JacksonHandle()).get(); assertEquals(4, node.get("trace").get("steps").size()); assertEquals("content", node.get("trace").get("steps").get(0).get("label").asText()); assertEquals(BINARY_HEX_ENCODED_SJS, node.get("trace").get("steps").get(0).get("output").asText().toLowerCase()); }
@Test public void runJSONWriterErrorFlowWithoutTracing() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeJSONWriterError"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(0, getFinalDocCount()); assertEquals(5, getTracingDocCount()); JsonNode node = jobDocMgr.search(allButCollectors(), 1).next().getContent(new JacksonHandle()).get(); assertEquals(1, node.get("trace").get("steps").size()); assertEquals("writer", node.get("trace").get("steps").get(0).get("label").asText()); } }
@Test public void runXqyJsonFlowWithBinaryContent() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); enableTracing(); assertTrue(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeXqyJsonWithBinary"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(5, getFinalDocCount()); assertEquals(6, getTracingDocCount()); DocumentRecord doc = finalDocMgr.read("/doc/1.json").next(); String finalDoc= doc.getContent(new StringHandle()).get(); assertJsonEqual(getResource("tracing-test/traces/finalXqyJsonDoc.json"), finalDoc, true); JsonNode node = jobDocMgr.search(allButCollectors(), 1).next().getContent(new JacksonHandle()).get(); assertEquals(4, node.get("trace").get("steps").size()); assertEquals("content", node.get("trace").get("steps").get(0).get("label").asText()); assertEquals(BINARY_HEX_ENCODED_XQY, node.get("trace").get("steps").get(0).get("output").asText().toLowerCase()); }
@Test public void runXMLWriterErrorFlowWithoutTracing() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeXMLWriterError"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(0, getFinalDocCount()); assertEquals(5, getTracingDocCount()); Document node = jobDocMgr.search(allButCollectors(), 1).next().getContent(new DOMHandle()).get(); assertEquals(1, node.getElementsByTagName("step").getLength()); assertEquals("writer", node.getElementsByTagName("label").item(0).getTextContent()); }
@Test public void runXMLErrorFlowWithoutTracing() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeXMLError"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(0, getFinalDocCount()); assertEquals(5, getTracingDocCount()); Document node = jobDocMgr.search(allButCollectors(), 1).next().getContent(new DOMHandle()).get(); assertEquals(1, node.getElementsByTagName("step").getLength()); assertEquals("content", node.getElementsByTagName("label").item(0).getTextContent()); }
@Test public void runXqyXmlFlowWithBinaryContent() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); enableTracing(); assertTrue(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeXqyXmlWithBinary"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(5, getFinalDocCount()); assertEquals(6, getTracingDocCount()); DocumentRecord doc = finalDocMgr.read("/doc/1.xml").next(); Document finalDoc = doc.getContent(new DOMHandle()).get(); assertXMLEqual(getXmlFromResource("tracing-test/traces/finalSjsXmlDoc.xml"), finalDoc); Document node = jobDocMgr.search(allButCollectors(), 1).next().getContent(new DOMHandle()).get(); assertEquals(4, node.getElementsByTagName("step").getLength()); assertEquals("content", node.getElementsByTagName("label").item(0).getTextContent()); assertEquals(BINARY_HEX_ENCODED_XQY, node.getElementsByTagName("output").item(0).getTextContent().toLowerCase()); }
@Test public void runSjsXmlFlowWithBinaryContent() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); enableTracing(); assertTrue(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeSjsXmlWithBinary"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(5, getFinalDocCount()); assertEquals(6, getTracingDocCount()); DocumentRecord doc = finalDocMgr.read("1").next(); Document finalDoc = doc.getContent(new DOMHandle()).get(); //debugOutput(finalDoc); assertXMLEqual(getXmlFromResource("tracing-test/traces/finalSjsXmlDoc.xml"), finalDoc); Document node = jobDocMgr.search(allButCollectors(), 1).next().getContent(new DOMHandle()).get(); assertEquals(4, node.getElementsByTagName("step").getLength()); assertEquals("content", node.getElementsByTagName("label").item(0).getTextContent()); assertEquals(BINARY_HEX_ENCODED_SJS, node.getElementsByTagName("output").item(0).getTextContent().toLowerCase()); }
@Test public void runJSONFlowSansTracing() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeJSON"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(5, getFinalDocCount()); assertEquals(0, getTracingDocCount()); }
@Test public void runXMLFlowWithTracing() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); enableTracing(); assertTrue(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeXML"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(5, getFinalDocCount()); assertEquals(6, getTracingDocCount()); }
@Test public void runJSONFlowWithTracing() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); enableTracing(); assertTrue(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeJSON"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(5, getFinalDocCount()); assertEquals(6, getTracingDocCount()); }
@Test public void runXMLFlowSansTracing() { assertEquals(0, getFinalDocCount()); assertEquals(0, getTracingDocCount()); Tracing t = Tracing.create(flowRunnerClient); assertFalse(t.isEnabled()); Flow flow = fm.getFlow("trace-entity", "tracemeXML"); FlowRunner flowRunner = fm.newFlowRunner() .withFlow(flow) .withBatchSize(10) .withThreadCount(1); flowRunner.run(); flowRunner.awaitCompletion(); assertEquals(5, getFinalDocCount()); assertEquals(0, getTracingDocCount()); // disable must be idempotent disableTracing(); disableDebugging(); disableDebugging(); }