package hdgl.db.query.parser;
import static org.junit.Assert.*;
import java.util.Arrays;
import hdgl.db.query.condition.AbstractCondition;
import hdgl.db.query.condition.AbstractCondition.ConditionRelationship;
import hdgl.db.query.condition.EqualTo;
import hdgl.db.query.condition.IntNumberValue;
import hdgl.db.query.condition.LargerThanOrEqualTo;
import hdgl.db.query.condition.LessThan;
import hdgl.db.query.condition.NoRestriction;
import hdgl.db.query.condition.NotEqualTo;
import hdgl.db.query.condition.OfType;
import hdgl.db.query.convert.SortConditions;
import org.junit.Test;
public class ConditionTest {
@Test
public void test() {
AbstractCondition c1 = new EqualTo("a", new IntNumberValue(1));
AbstractCondition c11 = new EqualTo("a", new IntNumberValue(1));
AbstractCondition c2 = new LessThan("a", new IntNumberValue(100));
AbstractCondition c3 = new LargerThanOrEqualTo("a", new IntNumberValue(1));
AbstractCondition c4 = new OfType("test");
AbstractCondition c6 = new OfType("test2");
AbstractCondition c5 = new NotEqualTo("a", new IntNumberValue(1));
AbstractCondition c7 = new NoRestriction();
assertEquals(ConditionRelationship.Equivalent, c1.relationship(c1));
assertEquals(ConditionRelationship.Equivalent, c1.relationship(c11));
assertEquals(ConditionRelationship.Require, c1.relationship(c2));
assertEquals(ConditionRelationship.Sufficient, c2.relationship(c1));
assertEquals(ConditionRelationship.Require, c1.relationship(c3));
assertEquals(ConditionRelationship.Sufficient, c3.relationship(c1));
assertEquals(ConditionRelationship.NotRelevant, c3.relationship(c4));
AbstractCondition[] sorted = SortConditions.sortConditions(new AbstractCondition[]{c1,c11,c2,c3,c4,c5,c6,c7});
System.out.println(Arrays.toString(sorted));
}
}