2020import static org .mockito .Mockito .*;
2121
2222import java .util .ArrayList ;
23+ import java .util .LinkedList ;
24+ import java .util .List ;
2325import java .util .concurrent .CountDownLatch ;
2426import java .util .concurrent .TimeUnit ;
2527import java .util .concurrent .atomic .AtomicInteger ;
@@ -718,4 +720,25 @@ public void testOfType() {
718720 verify (aObserver , times (1 )).onCompleted ();
719721 }
720722
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+
721744}
0 commit comments