package com.salas.bb.domain.query.articles;
import com.salas.bb.domain.query.ICriteria;
import com.salas.bb.domain.query.general.DateAfterCO;
import com.salas.bb.domain.query.general.IDates;
import com.salas.bb.domain.query.general.LongLessCO;
import com.salas.bb.domain.query.general.LongGreaterCO;
import junit.framework.TestCase;
/**
* This suite contains acceptance tests for criteria and query validation.
*/
public class TestValidationAcceptance extends TestCase
{
private ICriteria criteria;
protected void setUp()
throws Exception
{
super.setUp();
criteria = new Query().addCriteria();
}
/**
* Tests catching of "after today" clause by validator.
*/
public void testValidatingAfterToday()
{
criteria.setProperty(ArticleDateProperty.INSTANCE);
criteria.setComparisonOperation(DateAfterCO.INSTANCE);
criteria.setValue(IDates.VALUE_TODAY);
assertNotNull(ArticleDateProperty.ERR_FUTURE, criteria.validate());
}
/**
* Tests catching of "less than 1 star" criteria.
*/
public void testValidatingStarzLessThanOne()
{
criteria.setProperty(FeedStarzProperty.INSTANCE);
criteria.setComparisonOperation(LongLessCO.INSTANCE);
criteria.setValue("1");
assertNotNull(FeedStarzProperty.ERR_LESS_1_STAR, criteria.validate());
}
/**
* Tests catching of "greater than 5 starz" criteria.
*/
public void testValidatingStarzMoreThanFive()
{
criteria.setProperty(FeedStarzProperty.INSTANCE);
criteria.setComparisonOperation(LongGreaterCO.INSTANCE);
criteria.setValue("5");
assertNotNull(FeedStarzProperty.ERR_MORE_5_STARZ, criteria.validate());
}
}