void handleLine(final String line) {
    final String trimmedLine = Optional.ofNullable(line).orElse("").trim();
    if (trimmedLine.isEmpty()) {
      return;
    }

    handleStatements(trimmedLine);
  }
@Test
  public void shouldDescribeOverloadedScalarFunction() {
    // Given:
    localCli.handleLine("describe function substring;");

    // Then:
    final String output = terminal.getOutputString();

    // Summary output:
    assertThat(output, containsString(
        "Name        : SUBSTRING\n"
        + "Author      : Confluent\n"
        + "Overview    : Returns the portion of the string or bytes passed in value.\n"
    ));
    assertThat(output, containsString(
        "Type        : SCALAR\n"
        + "Jar         : internal\n"
        + "Variations  :"
    ));

    // Variant output:
    assertThat(output, containsString(
        "\tVariation   : SUBSTRING(str VARCHAR, pos INT)\n"
        + "\tReturns     : VARCHAR\n"
        + "\tDescription : Returns the portion of str from pos to the end of str"
    ));
    assertThat(output, containsString(
        "\tstr         : The source string.\n"
        + "\tpos         : The base-one position to start from."
    ));
  }