@Test
public void testFinish() throws IOException {

  And and = new And();
  Expression first = mock(Expression.class);
  Expression second = mock(Expression.class);
  Deque<Expression> children = new LinkedList<Expression>();
  children.add(second);
  children.add(first);
  and.addChildren(children);
  and.finish();
  verify(first).finish();
  verify(second).finish();
  verifyNoMoreInteractions(first);
  verifyNoMoreInteractions(second);
}