1 package com.google.code.beanmatchers;
2
3 import static java.util.Arrays.asList;
4
5 import java.util.List;
6 import org.hamcrest.Description;
7
8 public class HasValidBeanHashCodeForMatcher<T> extends AbstractBeanHashCodeMatcher<T> {
9 private final List<String> properties;
10
11 HasValidBeanHashCodeForMatcher(TypeBasedValueGenerator valueGenerator, String... properties) {
12 super(valueGenerator);
13 this.properties = asList(properties);
14 }
15
16 @Override
17 protected boolean matchesSafely(Class<T> beanType, Description mismatchDescription) {
18 return super.hashCodeIsInfluencedByProperties(
19 new JavaBean(beanType), properties, mismatchDescription);
20 }
21
22 @Override
23 public void describeTo(Description description) {
24 description.appendText("bean with the properties ");
25 description.appendValue(properties);
26 description.appendText(" influencing hashCode");
27 }
28 }