@Test
  public void testParseParams() throws Exception {
    GenericSqlParser parser = new GenericSqlParser();

    Driver driver = new GenericJdbcDriver();

    Map<String, List<Integer>> paramMap = new HashMap<String, List<Integer>>();

    parser.parseParams(
        "select * from abc /* xx = :abc*/ where xyz = :xyz and abc = :abc and mmm = :xyz",
        null,
        paramMap,
        null,
        driver);

    assertTrue(paramMap.size() == 2);

    assertTrue(paramMap.containsKey("xyz"));

    assertTrue(paramMap.get("xyz").size() == 2);

    assertTrue(paramMap.get("xyz").get(0) == 1);
    assertTrue(paramMap.get("xyz").get(1) == 3);

    assertTrue(paramMap.containsKey("abc"));

    paramMap = new HashMap<String, List<Integer>>();

    List<String> outputParams = new ArrayList<String>();

    parser.parseParams(
        "begin abc = :abc; :out_integer_xyz = :mmm; end", null, paramMap, outputParams, driver);

    assertTrue(outputParams.size() == 1);

    assertTrue("out_integer_xyz".equals(outputParams.get(0)));
  }