package com.vaadin.v7.data.util.filter;
import java.text.SimpleDateFormat;
import java.util.Date;
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;
import com.vaadin.v7.data.util.filter.Compare.Equal;
import com.vaadin.v7.data.util.filter.Compare.Greater;
import com.vaadin.v7.data.util.filter.Compare.GreaterOrEqual;
import com.vaadin.v7.data.util.filter.Compare.Less;
import com.vaadin.v7.data.util.filter.Compare.LessOrEqual;
public class CompareFilterDateTest extends AbstractFilterTestBase<Compare> {
protected Item itemNullUtilDate;
protected Item itemNullSqlDate;
protected Item itemUtilDate;
protected Item itemSqlDate;
protected SimpleDateFormat formatter = new SimpleDateFormat("ddMMyyyy");
protected Filter equalCompUtilDate;
protected Filter greaterCompUtilDate;
protected Filter lessCompUtilDate;
protected Filter greaterEqualCompUtilDate;
protected Filter lessEqualCompUtilDate;
protected Filter equalCompSqlDate;
protected Filter greaterCompSqlDate;
protected Filter lessCompSqlDate;
protected Filter greaterEqualCompSqlDate;
protected Filter lessEqualCompSqlDate;
@Override
protected void setUp() throws Exception {
super.setUp();
equalCompUtilDate = new Equal(PROPERTY1, formatter.parse("26072016"));
greaterCompUtilDate = new Greater(PROPERTY1,
formatter.parse("26072016"));
lessCompUtilDate = new Less(PROPERTY1, formatter.parse("26072016"));
greaterEqualCompUtilDate = new GreaterOrEqual(PROPERTY1,
formatter.parse("26072016"));
lessEqualCompUtilDate = new LessOrEqual(PROPERTY1,
formatter.parse("26072016"));
equalCompSqlDate = new Equal(PROPERTY1,
new java.sql.Date(formatter.parse("26072016").getTime()));
greaterCompSqlDate = new Greater(PROPERTY1,
new java.sql.Date(formatter.parse("26072016").getTime()));
lessCompSqlDate = new Less(PROPERTY1,
new java.sql.Date(formatter.parse("26072016").getTime()));
greaterEqualCompSqlDate = new GreaterOrEqual(PROPERTY1,
new java.sql.Date(formatter.parse("26072016").getTime()));
lessEqualCompSqlDate = new LessOrEqual(PROPERTY1,
new java.sql.Date(formatter.parse("26072016").getTime()));
itemNullUtilDate = new PropertysetItem();
itemNullUtilDate.addItemProperty(PROPERTY1,
new ObjectProperty<Date>(null, Date.class));
itemNullSqlDate = new PropertysetItem();
itemNullSqlDate.addItemProperty(PROPERTY1,
new ObjectProperty<java.sql.Date>(null, java.sql.Date.class));
itemUtilDate = new PropertysetItem();
itemUtilDate.addItemProperty(PROPERTY1, new ObjectProperty<Date>(
formatter.parse("25072016"), Date.class));
itemSqlDate = new PropertysetItem();
itemSqlDate.addItemProperty(PROPERTY1,
new ObjectProperty<java.sql.Date>(
new java.sql.Date(
formatter.parse("25072016").getTime()),
java.sql.Date.class));
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
itemNullUtilDate = null;
itemNullSqlDate = null;
itemUtilDate = null;
itemSqlDate = null;
}
@Test
public void testCompareUtilDatesAndUtilDates() {
Assert.assertFalse(
equalCompUtilDate.passesFilter(null, itemNullUtilDate));
Assert.assertFalse(equalCompUtilDate.passesFilter(null, itemUtilDate));
Assert.assertFalse(
greaterCompUtilDate.passesFilter(null, itemUtilDate));
Assert.assertTrue(lessCompUtilDate.passesFilter(null, itemUtilDate));
Assert.assertFalse(
greaterEqualCompUtilDate.passesFilter(null, itemUtilDate));
Assert.assertTrue(
lessEqualCompUtilDate.passesFilter(null, itemUtilDate));
}
@Test
public void testCompareUtilDatesAndSqlDates() {
Assert.assertFalse(
equalCompUtilDate.passesFilter(null, itemNullSqlDate));
Assert.assertFalse(equalCompUtilDate.passesFilter(null, itemSqlDate));
Assert.assertFalse(greaterCompUtilDate.passesFilter(null, itemSqlDate));
Assert.assertTrue(lessCompUtilDate.passesFilter(null, itemSqlDate));
Assert.assertFalse(
greaterEqualCompUtilDate.passesFilter(null, itemSqlDate));
Assert.assertTrue(
lessEqualCompUtilDate.passesFilter(null, itemSqlDate));
}
@Test
public void testCompareSqlDatesAndSqlDates() {
Assert.assertFalse(
equalCompSqlDate.passesFilter(null, itemNullSqlDate));
Assert.assertFalse(equalCompSqlDate.passesFilter(null, itemSqlDate));
Assert.assertFalse(greaterCompSqlDate.passesFilter(null, itemSqlDate));
Assert.assertTrue(lessCompSqlDate.passesFilter(null, itemSqlDate));
Assert.assertFalse(
greaterEqualCompSqlDate.passesFilter(null, itemSqlDate));
Assert.assertTrue(lessEqualCompSqlDate.passesFilter(null, itemSqlDate));
}
@Test
public void testCompareSqlDatesAndUtilDates() {
Assert.assertFalse(
equalCompSqlDate.passesFilter(null, itemNullUtilDate));
Assert.assertFalse(equalCompSqlDate.passesFilter(null, itemUtilDate));
Assert.assertFalse(greaterCompSqlDate.passesFilter(null, itemUtilDate));
Assert.assertTrue(lessCompSqlDate.passesFilter(null, itemUtilDate));
Assert.assertFalse(
greaterEqualCompSqlDate.passesFilter(null, itemUtilDate));
Assert.assertTrue(
lessEqualCompSqlDate.passesFilter(null, itemUtilDate));
}
}