@Test
  public void shouldDetectCsv() {
    final SopremoPlan actualPlan =
        parseScript(
            "$input = read from 'file://input.csv';\n" + "write $input to 'file://output.json';");

    final SopremoPlan expectedPlan = new SopremoPlan();
    final Source input = new Source(new CsvFormat(), "file://input.csv");
    final Sink output = new Sink("file://output.json").withInputs(input);
    expectedPlan.setSinks(output);

    assertPlanEquals(expectedPlan, actualPlan);
  }
  @Test
  public void shouldConfigureQuotationOn() {
    final SopremoPlan actualPlan =
        parseScript(
            "$input = read csv from 'file://input.any'"
                + "  quote true;\n"
                + "write $input to 'file://output.json';");

    final SopremoPlan expectedPlan = new SopremoPlan();
    final Source input = new Source(new CsvFormat().withQuotation(true), "file://input.any");
    final Sink output = new Sink("file://output.json").withInputs(input);
    expectedPlan.setSinks(output);

    assertPlanEquals(expectedPlan, actualPlan);
  }
  @Test
  public void shouldConfigureEncoding() {
    final SopremoPlan actualPlan =
        parseScript(
            "$input = read csv from 'file://input.any'"
                + "  encoding 'iso-8859-1';\n"
                + "write $input to 'file://output.json';");

    final SopremoPlan expectedPlan = new SopremoPlan();
    final Source input = new Source(new CsvFormat().withEncoding("iso-8859-1"), "file://input.any");
    final Sink output = new Sink("file://output.json").withInputs(input);
    expectedPlan.setSinks(output);

    assertPlanEquals(expectedPlan, actualPlan);
  }
  @Test
  public void shouldConfigureColumnNames() {
    final SopremoPlan actualPlan =
        parseScript(
            "$input = read csv from 'file://input.any'"
                + "  columns ['A', 'B', 'C'];\n"
                + "write $input to 'file://output.json';");

    final SopremoPlan expectedPlan = new SopremoPlan();
    final Source input =
        new Source(new CsvFormat().withKeyNames("A", "B", "C"), "file://input.any");
    final Sink output = new Sink("file://output.json").withInputs(input);
    expectedPlan.setSinks(output);

    assertPlanEquals(expectedPlan, actualPlan);
  }