test_class.file: reactfx/src/test/java/org/reactfx/SuspendableYesTest.java
test_class.identifier: SuspendableYesTest
test_case.body: @Test
      public void recursionTest() {
          SuspendableYes sy = new SuspendableYes();
  
          // first listener immediately suspends after resumed
          sy.addListener((ind, oldVal, newVal) -> {
              if(!newVal) {
                  sy.suspend();
              }
          });
  
          // record changes observed by the second listener
          List<Tuple2<Boolean, Boolean>> changes = new ArrayList<>();
          EventStreams.changesOf(sy)
                  .subscribe(ch -> changes.add(t(ch.getOldValue(), ch.getNewValue())));
  
          sy.suspend().close();
  
          for(Tuple2<Boolean, Boolean> ch: changes) {
              assertNotEquals(ch._1, ch._2);
          }
  
          for(int i = 0; i < changes.size() - 1; ++i) {
              assertEquals(
                      "changes[" + i + "] = " + changes.get(i) + " and changes[" + (i+1) + "] = " + changes.get(i+1) + " are not compatible",
                      changes.get(i)._2, changes.get(i+1)._1);
          }
      }
test_case.class_method_signature: SuspendableYesTest.recursionTest()
test_case.full_signature: @Test public void recursionTest()
test_case.identifier: recursionTest
test_case.invocations: addListener suspend subscribe changesOf add t getOldValue getNewValue close suspend assertNotEquals size assertEquals get get get get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void recursionTest()
focal_class.file: reactfx/src/main/java/org/reactfx/SuspendableYes.java
focal_class.identifier: SuspendableYes
focal_class.class_method_signature: SuspendableYes.get()
focal_class.full_signature: @Override public boolean get()
focal_class.identifier: get
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean get()
focal_class.superclass: extends SuspendableBoolean
focal_method.body: @Override
      public boolean get() {
          return !isSuspended();
      }
focal_method.class_method_signature: SuspendableYes.get()
focal_method.full_signature: @Override public boolean get()
focal_method.identifier: get
focal_method.invocations: isSuspended
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: boolean
focal_method.signature: boolean get()