@Override public Keys<T> keys() { return delegate.keys(); }
@Override public Keys<T> keys() { return delegate.keys(); }
@Override protected boolean matchesSafely(FixedRekord<T> rekord, Description mismatchDescription) { Keys<T> actualKeys = rekord.keys(); Set<Key<T, ?>> missingKeys = difference(expectedKeys, actualKeys); mismatchDescription.appendText("was missing the keys ").appendValue(missingKeys); return missingKeys.isEmpty(); } };
@Override protected boolean matchesSafely(FixedRekord<T> rekord, Description mismatchDescription) { Keys<T> expectedKeys = rekord.acceptedKeys(); Keys<T> actualKeys = rekord.keys(); Set<Key<T, ?>> missingKeys = difference(expectedKeys, actualKeys); mismatchDescription.appendText("was missing the keys ").appendValue(missingKeys); return missingKeys.isEmpty(); } };
@Override protected boolean matchesSafely(FixedRekord<T> actualRekord, Description mismatchDescription) { mismatchDescription.appendText("a rekord that looks like ").appendValue(actualRekord); if (!expectedProperties.keySet().equals(actualRekord.keys().toSet())) { return false; } for (Map.Entry<Key<T, ?>, Matcher<?>> property : expectedProperties.entrySet()) { Key<T, ?> expectedKey = property.getKey(); Matcher<?> expectedValue = property.getValue(); if (!expectedValue.matches(actualRekord.get(expectedKey))) { return false; } } return true; } }