public void test() throws EtlExecutorException {
    EtlExecutor se = prepareExecutor(null);
    se.execute();

    assertEquals("jdbc:hsqldb:mem:propertiestest", params.getUrl());
    assertEquals("sa", params.getUser());
    assertEquals("", params.getPassword());

    // check substituted properties in a context
    assertEquals("1", ctx.getParameter("a"));
    assertEquals("bar", ctx.getParameter("foo"));
    assertEquals("1", ctx.getParameter("var"));
    assertEquals("1|1|1|1|1|1", ctx.getParameter("b"));
    assertEquals("jdbc:hsqldb:mem", ctx.getParameter("url.prefix"));
    assertEquals("propertiestest", ctx.getParameter("dbname"));
    assertEquals("org.hsqldb.jdbcDriver", ctx.getParameter("driver"));
    assertEquals("org.hsqldb.jdbcDriver", ctx.getParameter("driver"));
    assertEquals("jdbc:hsqldb:mem:propertiestest", ctx.getParameter("url"));
    assertEquals("sa", ctx.getParameter("user"));
    assertEquals("", ctx.getParameter("password"));
    Map<String, String> extra = new HashMap<String, String>();
    extra.put("var", "2");
    se = prepareExecutor(extra);
    se.execute();
    assertEquals("2", ctx.getParameter("var"));
    assertEquals("2|2|2|2|2|2", ctx.getParameter("b"));
  }