package nl.ipo.cds.etl.filtering;
import static org.junit.Assert.*;
import static nl.ipo.cds.etl.filtering.FilterExpressionFactory.*;
import java.util.HashSet;
import java.util.Set;
import nl.ipo.cds.domain.AttributeType;
import nl.ipo.cds.domain.FeatureType;
import nl.ipo.cds.domain.FeatureTypeAttribute;
import nl.ipo.cds.domain.QName;
import org.deegree.filter.Filter;
import org.junit.Before;
import org.junit.Test;
public class FilterFactoryTest {
private FeatureType featureType;
private FilterFactory factory;
@Before
public void createFilterFactory () {
featureType = createFeatureType ();
factory = new FilterFactory (featureType);
}
@Test
public void testEqual () {
final Filter filter = factory.createFilter (equal (attribute ("a", AttributeType.STRING), stringValue ("test")));
assertNotNull (filter);
System.out.println (filter);
}
@Test
public void testAnd () {
final Filter filter = factory.createFilter (
and (
equal (attribute ("a", AttributeType.STRING), stringValue ("test")),
notEqual (attribute ("a", AttributeType.STRING), stringValue ("test2"))
)
);
assertNotNull (filter);
System.out.println (filter);
}
@Test
public void testAndOr () {
final Filter filter = factory.createFilter (
or (
and (
equal (attribute ("a", AttributeType.STRING), stringValue ("test")),
notEqual (attribute ("a", AttributeType.STRING), stringValue ("test2"))
),
and (
equal (attribute ("a", AttributeType.STRING), stringValue ("test3")),
notEqual (attribute ("a", AttributeType.STRING), stringValue ("test4"))
)
)
);
assertNotNull (filter);
System.out.println (filter);
}
@Test
public void testLike () {
final Filter filter = factory.createFilter (
like (attribute ("a", AttributeType.STRING), "*test*")
);
assertNotNull (filter);
System.out.println (filter);
}
@Test
public void testIn () {
final Filter filter = factory.createFilter (
in (attribute ("a", AttributeType.STRING), "test,test1, test2, test3 , test4 ")
);
assertNotNull (filter);
System.out.println (filter);
}
@Test
public void testNotNull () {
final Filter filter = factory.createFilter (
notNull (attribute ("a", AttributeType.STRING))
);
assertNotNull (filter);
System.out.println (filter);
}
protected static FeatureType createFeatureType () {
return new FeatureType() {
@Override
public QName getName () {
return new QName () {
@Override
public int compareTo (final QName o) {
return getLocalPart ().compareTo (o.getLocalPart ());
}
@Override
public String getNamespace () {
return "http://www.idgis.nl/test";
}
@Override
public String getLocalPart () {
return "TestFeatureType";
}
};
}
@Override
public Set<FeatureTypeAttribute> getAttributes () {
return new HashSet<FeatureTypeAttribute>() {
private static final long serialVersionUID = 1L;
{
add (new FeatureTypeAttribute () {
@Override
public int compareTo (final FeatureTypeAttribute o) {
return getName ().compareTo (o.getName ());
}
@Override
public AttributeType getType () {
return AttributeType.STRING;
}
@Override
public QName getName () {
return new QName () {
@Override
public int compareTo (final QName o) {
return getLocalPart ().compareTo (o.getLocalPart ());
}
@Override
public String getNamespace () {
return "http://www.idgis.nl/test";
}
@Override
public String getLocalPart () {
return "a";
}
};
}
});
}
};
}
};
}
}