Skip to content

Commit 58ebd1b

Browse files
committed
Added ordering unit test
1 parent fa37722 commit 58ebd1b

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

rxjava-core/src/main/java/rx/operators/OperationTakeLast.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import java.util.Iterator;
2626
import java.util.concurrent.LinkedBlockingDeque;
27+
import java.util.concurrent.atomic.AtomicInteger;
2728

2829
import static org.mockito.Matchers.any;
2930
import static org.mockito.Mockito.*;
@@ -135,6 +136,39 @@ public void testTakeLast2() {
135136
verify(aObserver, times(1)).onCompleted();
136137
}
137138

139+
@Test
140+
public void testTakeLastOrdering() {
141+
Observable<String> w = Observable.toObservable("one", "two", "three");
142+
Observable<String> take = Observable.create(takeLast(w, 2));
143+
144+
@SuppressWarnings("unchecked")
145+
Observer<String> aObserver = mock(Observer.class);
146+
take.subscribe(countingWrapper(aObserver));
147+
verify(aObserver, times(1)).onNext("two_1");
148+
verify(aObserver, times(1)).onNext("three_2");
149+
}
150+
151+
152+
private static Observer<String> countingWrapper(final Observer<String> underlying) {
153+
return new Observer<String>() {
154+
private final AtomicInteger counter = new AtomicInteger();
155+
@Override
156+
public void onCompleted() {
157+
underlying.onCompleted();
158+
}
159+
160+
@Override
161+
public void onError(Exception e) {
162+
underlying.onCompleted();
163+
}
164+
165+
@Override
166+
public void onNext(String args) {
167+
underlying.onNext(args + "_" + counter.incrementAndGet());
168+
}
169+
};
170+
}
171+
138172
}
139173

140174
}

0 commit comments

Comments
 (0)