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();
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