20
20
import static org .mockito .Mockito .*;
21
21
22
22
import java .util .ArrayList ;
23
+ import java .util .LinkedList ;
24
+ import java .util .List ;
23
25
import java .util .concurrent .CountDownLatch ;
24
26
import java .util .concurrent .TimeUnit ;
25
27
import java .util .concurrent .atomic .AtomicInteger ;
@@ -718,4 +720,25 @@ public void testOfType() {
718
720
verify (aObserver , times (1 )).onCompleted ();
719
721
}
720
722
723
+ @ Test
724
+ public void testOfTypeWithPolymorphism () {
725
+ ArrayList <Integer > l1 = new ArrayList <Integer >();
726
+ l1 .add (1 );
727
+ LinkedList <Integer > l2 = new LinkedList <Integer >();
728
+ l2 .add (2 );
729
+
730
+ @ SuppressWarnings ("rawtypes" )
731
+ Observable <List > observable = Observable .<Object >from (l1 , l2 , "123" ).ofType (List .class );
732
+
733
+ @ SuppressWarnings ("unchecked" )
734
+ Observer <Object > aObserver = mock (Observer .class );
735
+ observable .subscribe (aObserver );
736
+ verify (aObserver , times (1 )).onNext (l1 );
737
+ verify (aObserver , times (1 )).onNext (l2 );
738
+ verify (aObserver , never ()).onNext ("123" );
739
+ verify (aObserver , never ()).onError (
740
+ org .mockito .Matchers .any (Throwable .class ));
741
+ verify (aObserver , times (1 )).onCompleted ();
742
+ }
743
+
721
744
}
0 commit comments