public void VisitResultOperator_HandlesResultOperator()
        {
            var resultOperator = new TestChoiceResultOperator(false);

            var handlerMock = MockRepository.GenerateMock <IResultOperatorHandler>();

            var registry = new ResultOperatorHandlerRegistry();

            registry.Register(typeof(TestChoiceResultOperator), handlerMock);
            var queryModelVisitor   = new TestableSqlPreparationQueryModelVisitor(_context, _stageMock, _generator, registry);
            var sqlStatementBuilder = queryModelVisitor.SqlStatementBuilder;

            handlerMock.Expect(
                mock =>
                mock.HandleResultOperator(
                    Arg <ResultOperatorBase> .Matches(o => o == resultOperator),
                    Arg <SqlStatementBuilder> .Matches(sb => sb == sqlStatementBuilder),
                    Arg <UniqueIdentifierGenerator> .Matches(g => g == _generator),
                    Arg <ISqlPreparationStage> .Matches(s => s == _stageMock),
                    Arg <ISqlPreparationContext> .Matches(c => c != _context)));
            handlerMock.Replay();

            queryModelVisitor.VisitResultOperator(resultOperator, _queryModel, 0);

            handlerMock.VerifyAllExpectations();
        }
        public void VisitResultOperator_NoHandlerFound()
        {
            var resultOperator    = new TestChoiceResultOperator(false);
            var registry          = new ResultOperatorHandlerRegistry();
            var queryModelVisitor = new TestableSqlPreparationQueryModelVisitor(_context, _stageMock, _generator, registry);

            queryModelVisitor.VisitResultOperator(resultOperator, _queryModel, 0);
        }
    public void VisitResultOperator_NoHandlerFound ()
    {
      var resultOperator = new TestChoiceResultOperator (false);
      var registry = new ResultOperatorHandlerRegistry ();
      var queryModelVisitor = new TestableSqlPreparationQueryModelVisitor (_context, _stageMock, _generator, registry);

      queryModelVisitor.VisitResultOperator (resultOperator, _queryModel, 0);
    }
    public void VisitResultOperator_HandlesResultOperator ()
    {
      var resultOperator = new TestChoiceResultOperator (false);

      var handlerMock = MockRepository.GenerateMock<IResultOperatorHandler>();
      
      var registry = new ResultOperatorHandlerRegistry();
      registry.Register (typeof (TestChoiceResultOperator), handlerMock);
      var queryModelVisitor = new TestableSqlPreparationQueryModelVisitor (_context, _stageMock, _generator, registry);
      var sqlStatementBuilder = queryModelVisitor.SqlStatementBuilder;

      handlerMock.Expect (
          mock =>
          mock.HandleResultOperator (
              Arg<ResultOperatorBase>.Matches (o => o == resultOperator),
              Arg<SqlStatementBuilder>.Matches (sb => sb == sqlStatementBuilder),
              Arg<UniqueIdentifierGenerator>.Matches (g => g == _generator),
              Arg<ISqlPreparationStage>.Matches (s => s == _stageMock),
              Arg<ISqlPreparationContext>.Matches (c => c != _context)));
      handlerMock.Replay();

      queryModelVisitor.VisitResultOperator (resultOperator, _queryModel, 0);

      handlerMock.VerifyAllExpectations();
    }