package com.vaadin.v7.data.util.filter;
import org.junit.Assert;
import org.junit.Test;
import com.vaadin.v7.data.Container.Filter;
import com.vaadin.v7.data.Item;
import com.vaadin.v7.data.util.ObjectProperty;
import com.vaadin.v7.data.util.PropertysetItem;
public class IsNullFilterTest extends AbstractFilterTestBase<IsNull> {
@Test
public void testIsNull() {
Item item1 = new PropertysetItem();
item1.addItemProperty("a",
new ObjectProperty<String>(null, String.class));
item1.addItemProperty("b",
new ObjectProperty<String>("b", String.class));
Item item2 = new PropertysetItem();
item2.addItemProperty("a",
new ObjectProperty<String>("a", String.class));
item2.addItemProperty("b",
new ObjectProperty<String>(null, String.class));
Filter filter1 = new IsNull("a");
Filter filter2 = new IsNull("b");
Assert.assertTrue(filter1.passesFilter(null, item1));
Assert.assertFalse(filter1.passesFilter(null, item2));
Assert.assertFalse(filter2.passesFilter(null, item1));
Assert.assertTrue(filter2.passesFilter(null, item2));
}
@Test
public void testIsNullAppliesToProperty() {
Filter filterA = new IsNull("a");
Filter filterB = new IsNull("b");
Assert.assertTrue(filterA.appliesToProperty("a"));
Assert.assertFalse(filterA.appliesToProperty("b"));
Assert.assertFalse(filterB.appliesToProperty("a"));
Assert.assertTrue(filterB.appliesToProperty("b"));
}
@Test
public void testIsNullEqualsHashCode() {
Filter filter1 = new IsNull("a");
Filter filter1b = new IsNull("a");
Filter filter2 = new IsNull("b");
// equals()
Assert.assertEquals(filter1, filter1b);
Assert.assertFalse(filter1.equals(filter2));
Assert.assertFalse(filter1.equals(new And()));
// hashCode()
Assert.assertEquals(filter1.hashCode(), filter1b.hashCode());
}
}