fix tracing ping-pong DataBroker wiring bug in trace blueprint XML
[controller.git] / opendaylight / md-sal / mdsal-trace / dom-impl / src / test / java / org / opendaylight / controller / md / sal / trace / tests / TracingBrokerTest.java
index 3179b2a20d5957a6fe6cfa7de3b7890c9a7a4b81..bcd2d7c923a2ce56f3886cb33c6eaa104f091396 100644 (file)
@@ -36,9 +36,13 @@ public class TracingBrokerTest {
         DOMDataBroker domDataBroker = mock(DOMDataBroker.class, RETURNS_DEEP_STUBS);
         Config config = new ConfigBuilder().setTransactionDebugContextEnabled(true).build();
         BindingNormalizedNodeSerializer codec = mock(BindingNormalizedNodeSerializer.class);
-        TracingBroker tracingBroker = new TracingBroker(domDataBroker, config, codec);
+        TracingBroker tracingBroker = new TracingBroker("mock", domDataBroker, config, codec);
+
+        for (int i = 0; i < 3; i++) {
+            DOMDataReadWriteTransaction tx = tracingBroker.newReadWriteTransaction();
+        }
+        DOMDataReadWriteTransaction anotherTx = tracingBroker.newReadWriteTransaction();
 
-        DOMDataReadWriteTransaction tx = tracingBroker.newReadWriteTransaction();
         DOMTransactionChain txChain = tracingBroker.createTransactionChain(null);
         DOMDataReadWriteTransaction txFromChain = txChain.newReadWriteTransaction();
 
@@ -48,10 +52,21 @@ public class TracingBrokerTest {
         String output = new String(baos.toByteArray(), UTF_8);
 
         assertThat(printReturnValue).isTrue();
-        // Assert expections about stack trace
-        assertThat(output).contains("testPrintOpenTransactions(TracingBrokerTest.java:41)");
+        // Assert expectations about stack trace
+        assertThat(output).contains("testPrintOpenTransactions(TracingBrokerTest.java");
         assertThat(output).doesNotContain(TracingBroker.class.getName());
 
+        String previousLine = "";
+        for (String line : output.split("\n")) {
+            if (line.contains("(...")) {
+                assertThat(previousLine.contains("(...)")).isFalse();
+            }
+            previousLine = line;
+        }
+
+        // assert that the sorting works - the x3 is shown before the x1
+        assertThat(output).contains("  DataBroker : newReadWriteTransaction()\n    3x");
+
         // We don't do any verify/times on the mocks,
         // because the main point of the test is just to verify that
         // printOpenTransactions runs through without any exceptions