public void Process()
        {
            var inputTree   = ExpressionHelper.CreateExpression();
            var fakeResult1 = ExpressionHelper.CreateExpression();
            var fakeResult2 = ExpressionHelper.CreateExpression();

            _stepMock1
            .Expect(mock => mock.Process(inputTree))
            .Return(fakeResult1);
            _stepMock2
            .Expect(mock => mock.Process(fakeResult1))
            .Return(fakeResult2);
            _stepMock1.Replay();
            _stepMock2.Replay();

            var result = _compoundExpressionTreeProcessor.Process(inputTree);

            _stepMock1.VerifyAllExpectations();
            _stepMock2.VerifyAllExpectations();
            Assert.That(result, Is.SameAs(fakeResult2));
        }