@SuppressWarnings("unchecked")
  @Override
  public IterableOfProtosSubject<M> valuesForKey(@Nullable Object key) {
    return check("valuesForKey(%s)", key)
        .about(protos())
        .that(((Multimap<Object, M>) actual).get(key));
  }
@Test
  public void testFluent_valuesForKey() {
    expectThat(multimapOf(1, message1, 1, message2, 2, message1))
        .valuesForKey(1)
        .ignoringFields(ignoreFieldNumber)
        .containsExactly(eqIgnoredMessage2, eqIgnoredMessage1);
    expectThat(multimapOf(1, message1, 1, message2, 2, message1))
        .valuesForKey(2)
        .ignoringRepeatedFieldOrder()
        .containsExactly(eqRepeatedMessage1);

    expectFailureWhenTesting()
        .that(multimapOf(1, message1, 1, message2, 2, message1))
        .valuesForKey(1)
        .ignoringFields(ignoreFieldNumber)
        .containsExactly(eqRepeatedMessage1, eqRepeatedMessage2);
    expectThatFailure().isNotNull();
  }