public IterableSubject factKeys() {
    if (!(actual instanceof ErrorWithFacts)) {
      failWithActual(simpleFact("expected a failure thrown by Truth's failure API"));
      return ignoreCheck().that(ImmutableList.of());
    }
    ErrorWithFacts error = (ErrorWithFacts) actual;
    return check("factKeys()").that(getFactKeys(error));
  }
@Test
  public void factKeysFail() {
    expectFailureWhenTestingThat(fact("foo", "the foo")).factKeys().containsExactly("bar");
    Truth.assertThat(expectFailure.getFailure())
        .hasMessageThat()
        .contains("value of: failure.factKeys()");
    // TODO(cpovirk): Switch to using fact-based assertions once IterableSubject uses them.
  }