/** 测试命令行->配置文件->默认值的优先级顺序 */
  @Test
  public void testOptionsMix() throws Exception {

    String[] args;
    // 配置文件和命令行混合,级命令行优先
    args =
        new String[] {
          "upload", "src/test/resources/test_data.txt",
          "test_table/ds='2113',pt='pttest'", "-record-delimiter=\t\t",
        };
    ExecutionContext context = ExecutionContext.load("src/test/resources/test_config.ini");
    DshipContext.INSTANCE.setExecutionContext(context);
    OptionsBuilder.buildUploadOption(args);

    assertEquals("charset not equal", "gbk", DshipContext.INSTANCE.get(Constants.CHARSET));
    assertEquals(
        "FIELD_DELIMITER name not equal",
        "||",
        DshipContext.INSTANCE.get(Constants.FIELD_DELIMITER));
    assertEquals(
        "RECORD_DELIMITER name not equal",
        "\t\t",
        DshipContext.INSTANCE.get(Constants.RECORD_DELIMITER));
    assertEquals(
        "DISCARD_BAD_RECORDS name not equal",
        "true",
        DshipContext.INSTANCE.get(Constants.DISCARD_BAD_RECORDS));
    assertEquals(
        "DATE_FORMAT_PATTERN name not equal",
        "yyyy-MM-dd HH:mm:ss",
        DshipContext.INSTANCE.get(Constants.DATE_FORMAT_PATTERN));
    assertEquals(
        "NULL_INDICATOR name not equal",
        "NULL",
        DshipContext.INSTANCE.get(Constants.NULL_INDICATOR));
    assertEquals("SCAN name not equal", "only", DshipContext.INSTANCE.get(Constants.SCAN));
  }