/* * Copyright (c) 2012-2015, Luigi R. Viggiano * All rights reserved. * * This software is distributable under the BSD license. * See the terms of the BSD license in the documentation provided with this software. */ package org.aeonbits.owner.event; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.mockito.ArgumentMatcher; import java.beans.PropertyChangeEvent; import static org.aeonbits.owner.UtilTest.eq; /** * @author Luigi R. Viggiano */ class PropertyChangeMatcher { static Matcher<PropertyChangeEvent> matches(final PropertyChangeEvent expectedEvent) { return new ArgumentMatcher<PropertyChangeEvent>() { @Override public boolean matches(Object argument) { PropertyChangeEvent arg = (PropertyChangeEvent) argument; return expectedEvent.getSource() == arg.getSource() && eq(expectedEvent.getOldValue(), arg.getOldValue()) && eq(expectedEvent.getNewValue(), arg.getNewValue()) && eq(expectedEvent.getPropertyName(), arg.getPropertyName()); } @Override public void describeTo(Description description) { description.appendText(String.valueOf(expectedEvent)); } }; } }