Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Cannot Reproduce
-
None
-
None
-
None
Description
I'm perplexed... if you add the following test to TStreamTest and run the DirectTStreamTest it works. If you run the DevelopmentTStreamTest it fails as noted in the commentary.
@Test
public void testBrokenDevelopmentProvider() throws Exception {
Topology t = newTopology();
// For some reason, the following sequence fails with no content
// received by the tester when run with the DevelopmentProvider.
//
// Commenting out either the s.filter() OR the s.peek() makes it work.
// OR putting the peek() before the filter() statement works!???
//
// This runs fine with the DirectProvider.
//
// I understand that given the structure of this test, the test
// could reach completion before either the filter or peek was actually
// called for the second tuple but that doesn't mean the tester
// should receive/report no tuples. (in practice, the full println
// output is present when it fails).
TStream<String> s = t.strings("a", "b");
s.filter(tuple ->
);
s.peek(tuple -> System.out.println("peek tuple: "+tuple));
Condition<Long> tc = t.getTester().tupleCount(s, 2);
Condition<List<String>> contents = t.getTester().streamContents(s, "a", "b");
complete(t, tc);
assertTrue("contents "+contents.getResult(), contents.valid());
}