### Question:
PodWatcher extends Watcher<V1Pod> implements WatchListener<V1Pod>, PodAwaiterStepFactory { public Step waitForDelete(V1Pod pod, Step next) { return new WaitForPodDeleteStep(pod, next); } private  PodWatcher(
      String namespace,
      String initialResourceVersion,
      WatchTuning tuning,
      WatchListener<V1Pod> listener,
      AtomicBoolean isStopping); static PodWatcher create(
      ThreadFactory factory,
      String ns,
      String initialResourceVersion,
      WatchTuning tuning,
      WatchListener<V1Pod> listener,
      AtomicBoolean isStopping); @Override WatchI<V1Pod> initiateWatch(WatchBuilder watchBuilder); @Override String getNamespace(); void receivedResponse(Watch.Response<V1Pod> item); Step waitForReady(V1Pod pod, Step next); Step waitForDelete(V1Pod pod, Step next);  }### Answer:
@Test public void whenPodDeletedOnFirstRead_runNextStep() { AtomicBoolean stopping = new AtomicBoolean(false); PodWatcher watcher = createWatcher(stopping); try { testSupport.runSteps(watcher.waitForDelete(createPod(), terminalStep)); assertThat(terminalStep.wasRun(), is(true)); } finally { stopping.set(true); } }
@Test public void whenPodNotDeletedOnFirstRead_dontRunNextStep() { AtomicBoolean stopping = new AtomicBoolean(false); PodWatcher watcher = createWatcher(stopping); testSupport.defineResources(createPod()); try { testSupport.runSteps(watcher.waitForDelete(createPod(), terminalStep)); assertThat(terminalStep.wasRun(), is(false)); } finally { stopping.set(true); } }