public void testAnd() {
    log("to test and()... ");

    ISQLLogic logic1 = SQLLogicBuilder.build("field", SQLOperator.GREATER_OR_EQUAL, 100);
    ISQLLogic logic2 = SQLLogicBuilder.build("filed", SQLOperator.NOT_EQUAL, false);

    // 1. and TRUE
    ISQLLogic logic = SQLLogicBuilder.and(logic1, SQLLogicString.TRUE);
    List params = new ArrayList();
    assertTrue(logic == logic1);

    // 2. and FALSE
    logic = SQLLogicBuilder.and(logic1, SQLLogicString.FALSE);
    assertTrue(logic == SQLLogicString.FALSE);

    // 3. TRUE and
    logic = SQLLogicBuilder.and(SQLLogicString.TRUE, logic2);
    assertTrue(logic == logic2);

    // 4. FALSE and
    logic = SQLLogicBuilder.and(SQLLogicString.FALSE, logic2);
    assertTrue(logic == SQLLogicString.FALSE);

    // 5. 1 and 2
    logic = SQLLogicBuilder.and(logic1, logic2);
    params.clear();
    assertEquals("field>=? AND filed<>?", logic.toSQL(params));
  }