{
String tn = "ECLFilterTest";
debugInfo(tn, "Starting test\n\n");
try
{
StartECLSessionMsg startCLmsg = new StartECLSessionMsg();
//
ECLSearchOperation.evaluateFilter(startCLmsg,
SearchFilter.createFilterFromString("(objectclass=*)"));
assertEquals(startCLmsg.getFirstDraftChangeNumber(),-1);
assertEquals(startCLmsg.getLastDraftChangeNumber(),-1);
//
ECLSearchOperation.evaluateFilter(startCLmsg,
SearchFilter.createFilterFromString("(changenumber>=2)"));
assertEquals(startCLmsg.getFirstDraftChangeNumber(),2);
assertEquals(startCLmsg.getLastDraftChangeNumber(),-1);
//
ECLSearchOperation.evaluateFilter(startCLmsg,
SearchFilter.createFilterFromString("(&(changenumber>=2)(changenumber<=5))"));
assertEquals(startCLmsg.getFirstDraftChangeNumber(),2);
assertEquals(startCLmsg.getLastDraftChangeNumber(),5);
//
try
{
ECLSearchOperation.evaluateFilter(startCLmsg,
SearchFilter.createFilterFromString("(&(changenumber>=2)(changenumber<+5))"));
assertTrue((startCLmsg.getFirstDraftChangeNumber()==1));
}
catch(DirectoryException de)
{
assertTrue(de != null);
}
//
ECLSearchOperation.evaluateFilter(startCLmsg,
SearchFilter.createFilterFromString("(&(dc=x)(&(changenumber>=2)(changenumber<=5)))"));
assertEquals(startCLmsg.getFirstDraftChangeNumber(),2);
assertEquals(startCLmsg.getLastDraftChangeNumber(),5);
ECLSearchOperation.evaluateFilter(startCLmsg,
SearchFilter.createFilterFromString("(&(&(changenumber>=3)(changenumber<=4))(&(|(dc=y)(dc=x))(&(changenumber>=2)(changenumber<=5))))"));
assertEquals(startCLmsg.getFirstDraftChangeNumber(),3);
assertEquals(startCLmsg.getLastDraftChangeNumber(),4);
//
ECLSearchOperation.evaluateFilter(startCLmsg,
SearchFilter.createFilterFromString("(|(objectclass=*)(&(changenumber>=2)(changenumber<=5)))"));
assertEquals(startCLmsg.getFirstDraftChangeNumber(),-1);
assertEquals(startCLmsg.getLastDraftChangeNumber(),-1);
//
ECLSearchOperation.evaluateFilter(startCLmsg,
SearchFilter.createFilterFromString("(changenumber=8)"));
assertEquals(startCLmsg.getFirstDraftChangeNumber(),8);
assertEquals(startCLmsg.getLastDraftChangeNumber(),8);
//
ChangeNumberGenerator gen = new ChangeNumberGenerator( 1, 0);
ChangeNumber changeNumber1 = gen.newChangeNumber();
ECLSearchOperation.evaluateFilter(startCLmsg,
SearchFilter.createFilterFromString("(replicationcsn="+changeNumber1+")"));
assertEquals(startCLmsg.getFirstDraftChangeNumber(),-1);
assertEquals(startCLmsg.getLastDraftChangeNumber(),-1);
assertEquals(startCLmsg.getChangeNumber(), changeNumber1);
}
catch(Exception e)
{