public void GetScalar_SetsCommandData()
        {
            var dataParameterCollectionMock = MockRepository.GenerateStrictMock <IDataParameterCollection>();

            dataParameterCollectionMock
            .Stub(mock => mock.Add(Arg <IDbDataParameter> .Is.Equal(_dataParameter)))
            .Return(0);
            dataParameterCollectionMock.Replay();

            _commandMock.Stub(stub => stub.Parameters).Return(dataParameterCollectionMock);
            _commandMock.Stub(stub => stub.CreateParameter()).Return(_dataParameter);

            var connectionMock = MockRepository.GenerateMock <IDbConnection>();

            connectionMock.Stub(stub => stub.CreateCommand()).Return(_commandMock);

            var connectionManagerStub = MockRepository.GenerateStub <IConnectionManager>();

            connectionManagerStub.Stub(stub => stub.Open()).Return(connectionMock);

            var retriever = new QueryResultRetriever(connectionManagerStub, _resolverStub);

            retriever.GetScalar(_scalarProjection, "Text", new[] { new CommandParameter("p1", "value1") });

            _dataParameter.AssertWasCalled(mock => mock.ParameterName = "p1");
            _dataParameter.AssertWasCalled(mock => mock.Value         = "value1");
            _commandMock.AssertWasCalled(mock => mock.CommandText     = "Text");
            dataParameterCollectionMock.VerifyAllExpectations();
        }
        public void GetScalar_DisposesAllObjects()
        {
            var retriever = new QueryResultRetriever(_connectionManagerStub, _resolverStub);

            retriever.GetScalar(_scalarProjection, "Text", new CommandParameter[0]);

            _commandMock.AssertWasCalled(mock => mock.Dispose());
            _connectionMock.AssertWasCalled(mock => mock.Dispose());
            _dataReaderMock.AssertWasCalled(mock => mock.Dispose());
        }
        public void GetScalar()
        {
            var fakeResult = 10;

            _dataReaderMock.Stub(stub => stub.Read()).Return(true).Repeat.Once();
            _dataReaderMock.Stub(stub => stub.GetValue(0)).Return(fakeResult).Repeat.Once();

            var retriever = new QueryResultRetriever(_connectionManagerStub, _resolverStub);

            var result = retriever.GetScalar(_scalarProjection, "Text", new CommandParameter[0]);

            Assert.That(result, Is.EqualTo(fakeResult));
        }
    public void GetScalar_SetsCommandData ()
    {
      var dataParameterCollectionMock = MockRepository.GenerateStrictMock<IDataParameterCollection>();
      dataParameterCollectionMock
          .Stub (mock => mock.Add (Arg<IDbDataParameter>.Is.Equal (_dataParameter)))
          .Return (0);
      dataParameterCollectionMock.Replay();

      _commandMock.Stub (stub => stub.Parameters).Return (dataParameterCollectionMock);
      _commandMock.Stub (stub => stub.CreateParameter()).Return (_dataParameter);

      var connectionMock = MockRepository.GenerateMock<IDbConnection>();
      connectionMock.Stub (stub => stub.CreateCommand()).Return (_commandMock);

      var connectionManagerStub = MockRepository.GenerateStub<IConnectionManager>();
      connectionManagerStub.Stub (stub => stub.Open()).Return (connectionMock);

      var retriever = new QueryResultRetriever (connectionManagerStub, _resolverStub);

      retriever.GetScalar (_scalarProjection, "Text", new[] { new CommandParameter ("p1", "value1") });

      _dataParameter.AssertWasCalled (mock => mock.ParameterName = "p1");
      _dataParameter.AssertWasCalled (mock => mock.Value = "value1");
      _commandMock.AssertWasCalled (mock => mock.CommandText = "Text");
      dataParameterCollectionMock.VerifyAllExpectations();
    }
    public void GetScalar_DisposesAllObjects ()
    {
      var retriever = new QueryResultRetriever (_connectionManagerStub, _resolverStub);

      retriever.GetScalar (_scalarProjection, "Text", new CommandParameter[0]);

      _commandMock.AssertWasCalled (mock => mock.Dispose());
      _connectionMock.AssertWasCalled (mock => mock.Dispose());
      _dataReaderMock.AssertWasCalled (mock => mock.Dispose());
    }
    public void GetScalar ()
    {
      var fakeResult = 10;
      _dataReaderMock.Stub (stub => stub.Read()).Return (true).Repeat.Once();
      _dataReaderMock.Stub (stub => stub.GetValue (0)).Return (fakeResult).Repeat.Once();

      var retriever = new QueryResultRetriever (_connectionManagerStub, _resolverStub);

      var result = retriever.GetScalar (_scalarProjection, "Text", new CommandParameter[0]);

      Assert.That (result, Is.EqualTo (fakeResult));
    }