/** * */ package org.drugis.common; import java.beans.PropertyChangeEvent; import org.easymock.IArgumentMatcher; class PropertyChangeEventMatcher implements IArgumentMatcher { private PropertyChangeEvent d_expected; private final boolean d_ignoreValues; public PropertyChangeEventMatcher(PropertyChangeEvent expected, boolean ignoreValues) { d_expected = expected; d_ignoreValues = ignoreValues; } public void appendTo(StringBuffer buffer) { buffer.append("PropertyChangeEventMatcher("); buffer.append("source = " + d_expected.getSource() + ", "); buffer.append("property = " + d_expected.getPropertyName() + ", "); buffer.append("oldValue = " + d_expected.getOldValue() + ", "); buffer.append("newValue = " + d_expected.getNewValue() + ")"); } public boolean eq(Object o1, Object o2) { if (o1 == null) { return o2 == null; } return o1.equals(o2); } public boolean matches(Object a) { if (!(a instanceof PropertyChangeEvent)) { return false; } PropertyChangeEvent actual = (PropertyChangeEvent)a; return eq(actual.getSource(), d_expected.getSource()) && eq(actual.getPropertyName(), d_expected.getPropertyName()) && ( d_ignoreValues || eq(actual.getOldValue(), d_expected.getOldValue()) ) && ( d_ignoreValues || eq(actual.getNewValue(), d_expected.getNewValue()) ); } }