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.BeanItem;
public class NotFilterTest extends AbstractFilterTestBase<Not> {
protected Item item1 = new BeanItem<Integer>(1);
protected Item item2 = new BeanItem<Integer>(2);
@Test
public void testNot() {
Filter origFilter = new SameItemFilter(item1);
Filter filter = new Not(origFilter);
Assert.assertTrue(origFilter.passesFilter(null, item1));
Assert.assertFalse(origFilter.passesFilter(null, item2));
Assert.assertFalse(filter.passesFilter(null, item1));
Assert.assertTrue(filter.passesFilter(null, item2));
}
@Test
public void testANotAppliesToProperty() {
Filter filterA = new Not(new SameItemFilter(item1, "a"));
Filter filterB = new Not(new SameItemFilter(item1, "b"));
Assert.assertTrue(filterA.appliesToProperty("a"));
Assert.assertFalse(filterA.appliesToProperty("b"));
Assert.assertFalse(filterB.appliesToProperty("a"));
Assert.assertTrue(filterB.appliesToProperty("b"));
}
@Test
public void testNotEqualsHashCode() {
Filter origFilter = new SameItemFilter(item1);
Filter filter1 = new Not(origFilter);
Filter filter1b = new Not(new SameItemFilter(item1));
Filter filter2 = new Not(new SameItemFilter(item2));
// equals()
Assert.assertEquals(filter1, filter1b);
Assert.assertFalse(filter1.equals(filter2));
Assert.assertFalse(filter1.equals(origFilter));
Assert.assertFalse(filter1.equals(new And()));
// hashCode()
Assert.assertEquals(filter1.hashCode(), filter1b.hashCode());
}
}