PropertyChangeFilterTest.java :  » REST » propidle » com » googlecode » propidle » client » changenotification » Java Open Source

Java Open Source » REST » propidle 
propidle » com » googlecode » propidle » client » changenotification » PropertyChangeFilterTest.java
package com.googlecode.propidle.client.changenotification;

import com.googlecode.propidle.client.PropertyChangeListener;
import static com.googlecode.propidle.client.changenotification.PropertyChangeEvent.propertyChangeEvent;
import com.googlecode.propidle.properties.PropertyComparison;
import static com.googlecode.propidle.properties.PropertyComparison.createdProperty;
import static com.googlecode.propidle.properties.PropertyName.propertyName;
import static com.googlecode.propidle.properties.PropertyName.propertyNames;
import static com.googlecode.propidle.properties.PropertyValue.propertyValue;

import org.junit.Test;
import static org.mockito.Mockito.*;

import java.util.Properties;

public class PropertyChangeFilterTest {
    private PropertyChangeListener decorated = mock(PropertyChangeListener.class);
    private Properties properties = new Properties();

    @Test
    public void filtersPropertyChangesByPredicate() {
        PropertyChangeFilter filter = PropertyChangeFilter.filterPropertyChanges(decorated, propertyNames("shambles"));

        PropertyComparison matchingChange = createdProperty(propertyName("shambles"), propertyValue("moo"));
        PropertyComparison nonMatchingChange = createdProperty(propertyName("not.shambles"), propertyValue("moo"));

        filter.propertiesHaveChanged(propertyChangeEvent(properties, matchingChange));
        verify(decorated).propertiesHaveChanged(propertyChangeEvent(properties, matchingChange));

        filter.propertiesHaveChanged(propertyChangeEvent(properties, nonMatchingChange));
        verify(decorated, never()).propertiesHaveChanged(propertyChangeEvent(properties, nonMatchingChange));
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.