### Question:
JobWatcher extends Watcher<V1Job> implements WatchListener<V1Job> { public static boolean isComplete(V1Job job) { if (job == null) { return false; } V1JobStatus status = job.getStatus(); LOGGER.fine( "JobWatcher.isComplete status of job " + job.getMetadata().getName() + ": " + status); if (status != null) { List<V1JobCondition> conds = status.getConditions(); if (conds != null) { for (V1JobCondition cond : conds) { if ("Complete".equals(cond.getType())) { if ("True".equals(cond.getStatus())) { LOGGER.info(MessageKeys.JOB_IS_COMPLETE, job.getMetadata().getName(), status); return true; } } } } } return false; } private  JobWatcher(
      String namespace,
      String initialResourceVersion,
      WatchTuning tuning,
      AtomicBoolean isStopping); static @Nonnull JobWatcher getOrCreateFor(Domain domain); @Override String getNamespace(); static JobWatcher create(
      ThreadFactory factory,
      String ns,
      String initialResourceVersion,
      WatchTuning tuning,
      AtomicBoolean isStopping); static boolean isComplete(V1Job job); @Override WatchI<V1Job> initiateWatch(WatchBuilder watchBuilder); void receivedResponse(Watch.Response<V1Job> item); Step waitForReady(V1Job job, Step next);  }### Answer:
@Test public void whenJobHasNoStatus_reportNotComplete() { assertThat(JobWatcher.isComplete(cachedJob), is(false)); }
@Test public void whenJobHasNoCondition_reportNotComplete() { cachedJob.status(new V1JobStatus()); assertThat(JobWatcher.isComplete(cachedJob), is(false)); }
@Test public void whenJobConditionTypeFailed_reportNotComplete() { cachedJob.status(new V1JobStatus().addConditionsItem(new V1JobCondition().type("Failed"))); assertThat(JobWatcher.isComplete(cachedJob), is(false)); }
@Test public void whenJobConditionStatusFalse_reportNotComplete() { cachedJob.status( new V1JobStatus().addConditionsItem(new V1JobCondition().type("Complete").status("False"))); assertThat(JobWatcher.isComplete(cachedJob), is(false)); }
@Test public void whenJobRunningAndReadyConditionIsTrue_reportComplete() { markJobCompleted(cachedJob); assertThat(JobWatcher.isComplete(cachedJob), is(true)); }