public AstNode rewrite(final AstNode node, final C context) {
    return rewriter.process(node, context);
  }
@Test
  public void shouldRewritePartitionBy() {
    // Given:
    final PartitionBy partitionBy = new PartitionBy(
        location,
        ImmutableList.of(expression)
    );
    when(expressionRewriter.apply(expression, context)).thenReturn(rewrittenExpression);

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

    // Then:
    assertThat(rewritten, equalTo(new PartitionBy(
        location,
        ImmutableList.of(rewrittenExpression)
    )));
  }