/** * Test method for {@link org.identityconnectors.dbcommon.DatabaseFilterTranslator}. * * @throws Exception */ @Test public void testNotfilter() throws Exception { Filter gt = greaterThan(build("count", 4)); Filter f = FilterBuilder.not(gt); DatabaseFilterTranslator tr = getDatabaseFilterTranslator(); List<FilterWhereBuilder> blist = tr.translate(f); assertEquals(1, blist.size()); final FilterWhereBuilder b = blist.get(0); assertEquals("count <= ?", b.getWhereClause()); List<SQLParam> expected = new ArrayList<SQLParam>(); expected.add(new SQLParam("count", 4, Types.INTEGER)); assertEquals(expected.size(), b.getParams().size()); }
/** * Test method for {@link org.identityconnectors.dbcommon.DatabaseFilterTranslator}. * * @throws Exception */ @Test public void testCompositeFilterChainNotOr() throws Exception { Filter lf = greaterThan(build("count", 4)); Filter rf = lessThan(build("count", 20)); List<SQLParam> expected = new ArrayList<SQLParam>(); expected.add(new SQLParam("count", 4, Types.INTEGER)); expected.add(new SQLParam("count", 20, Types.INTEGER)); // test and Filter f = FilterBuilder.or(lf, rf); Filter not = FilterBuilder.not(f); DatabaseFilterTranslator tr = getDatabaseFilterTranslator(); List<FilterWhereBuilder> blist = tr.translate(not); assertEquals(1, blist.size()); final FilterWhereBuilder b = blist.get(0); assertEquals("count <= ? AND count >= ?", b.getWhereClause()); assertEquals(expected.size(), b.getParams().size()); }
/** * Test method for {@link org.identityconnectors.dbcommon.DatabaseFilterTranslator}. * * @throws Exception */ @Test public void testCompositeFilterChainOrAndNot() throws Exception { Filter f1 = greaterThan(build("count", 4)); Filter f2 = lessThan(build("count", 20)); Filter f3 = equalTo(build("count", 10)); List<SQLParam> expected = new ArrayList<SQLParam>(); expected.add(new SQLParam("count", 4, Types.INTEGER)); expected.add(new SQLParam("count", 20, Types.INTEGER)); expected.add(new SQLParam("count", 10, Types.INTEGER)); // test and Filter f1o2 = FilterBuilder.or(f1, f2); Filter fn3 = FilterBuilder.not(f3); Filter f = FilterBuilder.and(f1o2, fn3); DatabaseFilterTranslator tr = getDatabaseFilterTranslator(); List<FilterWhereBuilder> blist = tr.translate(f); assertEquals(1, blist.size()); final FilterWhereBuilder b = blist.get(0); assertEquals("( count > ? OR count < ? ) AND NOT count = ?", b.getWhereClause()); assertEquals(expected.size(), b.getParams().size()); }