Skip to content

Commit 8c82440

Browse files
artem-zinnatullinstevegury
authored andcommitted
1.x: TestSubscriber/TestObserver print values if number of items doesn't match (#3880)
1 parent 9b08870 commit 8c82440

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

src/main/java/rx/observers/TestObserver.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,11 @@ public List<Object> getEvents() {
113113
*/
114114
public void assertReceivedOnNext(List<T> items) {
115115
if (onNextEvents.size() != items.size()) {
116-
throw new AssertionError("Number of items does not match. Provided: " + items.size() + " Actual: " + onNextEvents.size());
116+
throw new AssertionError("Number of items does not match. Provided: " + items.size() + " Actual: " + onNextEvents.size()
117+
+ ".\n"
118+
+ "Provided values: " + items
119+
+ "\n"
120+
+ "Actual values: " + onNextEvents);
117121
}
118122

119123
for (int i = 0; i < items.size(); i++) {

src/test/java/rx/observers/TestObserverTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ public void testAssertNotMatchCount() {
5353
oi.subscribe(o);
5454

5555
thrown.expect(AssertionError.class);
56-
thrown.expectMessage("Number of items does not match. Provided: 1 Actual: 2");
56+
thrown.expectMessage("Number of items does not match. Provided: 1 Actual: 2.\n" +
57+
"Provided values: [1]\n" +
58+
"Actual values: [1, 2]");
5759

5860
o.assertReceivedOnNext(Arrays.asList(1));
5961
assertEquals(2, o.getOnNextEvents().size());

src/test/java/rx/observers/TestSubscriberTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,4 +595,24 @@ public void onError(Throwable e) {
595595

596596
ts.awaitTerminalEvent();
597597
}
598+
599+
@Test
600+
public void assertValuesShouldThrowIfNumberOfItemsDoesNotMatch() {
601+
TestSubscriber<String> ts = new TestSubscriber<String>();
602+
603+
ts.onNext("a");
604+
ts.onNext("b");
605+
ts.onNext("c");
606+
607+
try {
608+
ts.assertValues("1", "2");
609+
fail();
610+
} catch (AssertionError expected) {
611+
assertEquals("Number of items does not match. Provided: 2 Actual: 3.\n" +
612+
"Provided values: [1, 2]\n" +
613+
"Actual values: [a, b, c]",
614+
expected.getMessage()
615+
);
616+
}
617+
}
598618
}

0 commit comments

Comments
 (0)