test_class.file: rxjava/src/test/java/io/reactivex/internal/operators/flowable/FlowableFromIterableTest.java
test_class.identifier: FlowableFromIterableTest
test_case.body: @Test
      public void hasNextCancels() {
          final TestSubscriber<Integer> ts = new TestSubscriber<Integer>();
  
          Flowable.fromIterable(new Iterable<Integer>() {
              @Override
              public Iterator<Integer> iterator() {
                  return new Iterator<Integer>() {
                      int count;
  
                      @Override
                      public boolean hasNext() {
                          if (++count == 2) {
                              ts.cancel();
                          }
                          return true;
                      }
  
                      @Override
                      public Integer next() {
                          return 1;
                      }
  
                      @Override
                      public void remove() {
                          throw new UnsupportedOperationException();
                      }
                  };
              }
          })
          .subscribe(ts);
  
          ts.assertValue(1)
          .assertNoErrors()
          .assertNotComplete();
      }
test_case.class_method_signature: FlowableFromIterableTest.hasNextCancels()
test_case.full_signature: @Test public void hasNextCancels()
test_case.identifier: hasNextCancels
test_case.invocations: subscribe fromIterable cancel assertNotComplete assertNoErrors assertValue
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void hasNextCancels()
focal_class.declarator: source
focal_class.modifier: final
focal_class.original_string: final Iterable<? extends T> source;
focal_class.type: Iterable<? extends T>
focal_class.var_name: source
focal_class.file: rxjava/src/main/java/io/reactivex/internal/operators/flowable/FlowableFromIterable.java
focal_class.identifier: FlowableFromIterable
focal_class.class_method_signature: FlowableFromIterable.FlowableFromIterable(Iterable<? extends T> source)
focal_class.full_signature: public  FlowableFromIterable(Iterable<? extends T> source)
focal_class.identifier: FlowableFromIterable
focal_class.modifiers: public
focal_class.parameters: (Iterable<? extends T> source)
focal_class.signature:  FlowableFromIterable(Iterable<? extends T> source)
focal_class.class_method_signature: FlowableFromIterable.subscribeActual(Subscriber<? super T> s)
focal_class.full_signature: @Override public void subscribeActual(Subscriber<? super T> s)
focal_class.identifier: subscribeActual
focal_class.modifiers: @Override public
focal_class.parameters: (Subscriber<? super T> s)
focal_class.return: void
focal_class.signature: void subscribeActual(Subscriber<? super T> s)
focal_class.class_method_signature: FlowableFromIterable.subscribe(Subscriber<? super T> s, Iterator<? extends T> it)
focal_class.full_signature: public static void subscribe(Subscriber<? super T> s, Iterator<? extends T> it)
focal_class.identifier: subscribe
focal_class.modifiers: public static
focal_class.parameters: (Subscriber<? super T> s, Iterator<? extends T> it)
focal_class.return: void
focal_class.signature: void subscribe(Subscriber<? super T> s, Iterator<? extends T> it)
focal_class.superclass: extends Flowable<T>
focal_method.body: public static <T> void subscribe(Subscriber<? super T> s, Iterator<? extends T> it) {
          boolean hasNext;
          try {
              hasNext = it.hasNext();
          } catch (Throwable e) {
              Exceptions.throwIfFatal(e);
              EmptySubscription.error(e, s);
              return;
          }
  
          if (!hasNext) {
              EmptySubscription.complete(s);
              return;
          }
  
          if (s instanceof ConditionalSubscriber) {
              s.onSubscribe(new IteratorConditionalSubscription<T>(
                      (ConditionalSubscriber<? super T>)s, it));
          } else {
              s.onSubscribe(new IteratorSubscription<T>(s, it));
          }
      }
focal_method.class_method_signature: FlowableFromIterable.subscribe(Subscriber<? super T> s, Iterator<? extends T> it)
focal_method.full_signature: public static void subscribe(Subscriber<? super T> s, Iterator<? extends T> it)
focal_method.identifier: subscribe
focal_method.invocations: hasNext throwIfFatal error complete onSubscribe onSubscribe
focal_method.modifiers: public static
focal_method.parameters: (Subscriber<? super T> s, Iterator<? extends T> it)
focal_method.return: void
focal_method.signature: void subscribe(Subscriber<? super T> s, Iterator<? extends T> it)