public AstNode rewrite(final AstNode node, final C context) {
    return rewriter.process(node, context);
  }
@Test
  public void shouldRewriteSingleColumn() {
    // Given:
    final SingleColumn singleColumn = new SingleColumn(
        location,
        expression,
        Optional.of(ColumnName.of("foo"))
    );
    when(expressionRewriter.apply(expression, context)).thenReturn(rewrittenExpression);

    // When:
    final AstNode rewritten = rewriter.rewrite(singleColumn, context);

    // Then:
    assertThat(rewritten, equalTo(new SingleColumn(
        location, rewrittenExpression,
        Optional.of(ColumnName.of("foo")))
    ));
  }