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 GetResults_DisposesAllObjects()
        {
            _dataReaderMock.Stub(stub => stub.Read()).Return(false);

            var retriever = new QueryResultRetriever(_connectionManagerStub, _resolverStub);

            var result = retriever.GetResults(_projection, "Text", new CommandParameter[0]).ToArray();

            Assert.That(result, Is.Empty);

            _dataReaderMock.AssertWasCalled(mock => mock.Dispose());
            _commandMock.AssertWasCalled(mock => mock.Dispose());
            _connectionMock.AssertWasCalled(mock => mock.Dispose());
        }
        public void GetResults_CreatesCommandAndReadsData()
        {
            _dataReaderMock.Stub(stub => stub.Read()).Return(true).Repeat.Once();
            _dataReaderMock.Stub(stub => stub.GetValue(0)).Return("testColumnValue1").Repeat.Once();
            _dataReaderMock.Stub(stub => stub.Read()).Return(true).Repeat.Once();
            _dataReaderMock.Stub(stub => stub.GetValue(0)).Return("testColumnValue2").Repeat.Once();
            _dataReaderMock.Stub(stub => stub.Read()).Return(false);

            var retriever = new QueryResultRetriever(_connectionManagerStub, _resolverStub);

            var result = retriever.GetResults(_projection, "Text", new CommandParameter[0]).ToArray();

            Assert.That(result, Is.EqualTo(new[] { "testColumnValue1", "testColumnValue2" }));
        }
    public void GetResults_DisposesAllObjects ()
    {
      _dataReaderMock.Stub (stub => stub.Read()).Return (false);

      var retriever = new QueryResultRetriever (_connectionManagerStub, _resolverStub);

      var result = retriever.GetResults (_projection, "Text", new CommandParameter[0]).ToArray();

      Assert.That (result, Is.Empty);

      _dataReaderMock.AssertWasCalled (mock => mock.Dispose());
      _commandMock.AssertWasCalled (mock => mock.Dispose());
      _connectionMock.AssertWasCalled (mock => mock.Dispose());
    }
    public void GetResults_CreatesCommandAndReadsData ()
    {
      _dataReaderMock.Stub (stub => stub.Read()).Return (true).Repeat.Once();
      _dataReaderMock.Stub (stub => stub.GetValue (0)).Return ("testColumnValue1").Repeat.Once();
      _dataReaderMock.Stub (stub => stub.Read()).Return (true).Repeat.Once();
      _dataReaderMock.Stub (stub => stub.GetValue (0)).Return ("testColumnValue2").Repeat.Once();
      _dataReaderMock.Stub (stub => stub.Read()).Return (false);

      var retriever = new QueryResultRetriever (_connectionManagerStub, _resolverStub);

      var result = retriever.GetResults (_projection, "Text", new CommandParameter[0]).ToArray();

      Assert.That (result, Is.EqualTo (new[] { "testColumnValue1", "testColumnValue2" }));
    }
        public void GetResults_UsesProjection()
        {
            _dataReaderMock.Stub(stub => stub.Read()).Return(true).Repeat.Once();
            _dataReaderMock.Stub(stub => stub.GetValue(0)).Return("testColumnValue1").Repeat.Once();
            _dataReaderMock.Stub(stub => stub.Read()).Return(false);

            var projectionMock = MockRepository.GenerateMock <Func <IDatabaseResultRow, string> >();

            var retriever = new QueryResultRetriever(_connectionManagerStub, _resolverStub);
            var result    = retriever.GetResults(projectionMock, "Text", new CommandParameter[0]).ToArray();

            Assert.That(result[0], Is.Null);
            projectionMock.AssertWasCalled(p => p.Invoke(Arg <IDatabaseResultRow> .Is.Anything));
            projectionMock.VerifyAllExpectations();
        }
        public void GetResults_SetsCommandData()
        {
            _dataReaderMock.Stub(stub => stub.Read()).Return(false);

            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);

            var retriever = new QueryResultRetriever(_connectionManagerStub, _resolverStub);

            var result = retriever.GetResults(_projection, "Text", new[] { new CommandParameter("p1", "value1") }).ToArray();

            Assert.That(result, Is.Empty);

            _dataParameter.AssertWasCalled(mock => mock.ParameterName = "p1");
            _dataParameter.AssertWasCalled(mock => mock.Value         = "value1");
            _commandMock.AssertWasCalled(mock => mock.CommandText     = "Text");
            dataParameterCollectionMock.VerifyAllExpectations();
        }
    public void GetResults_SetsCommandData ()
    {
      _dataReaderMock.Stub (stub => stub.Read()).Return (false);

      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);

      var retriever = new QueryResultRetriever (_connectionManagerStub, _resolverStub);

      var result = retriever.GetResults (_projection, "Text", new[] { new CommandParameter ("p1", "value1") }).ToArray();

      Assert.That (result, Is.Empty);

      _dataParameter.AssertWasCalled (mock => mock.ParameterName = "p1");
      _dataParameter.AssertWasCalled (mock => mock.Value = "value1");
      _commandMock.AssertWasCalled (mock => mock.CommandText = "Text");
      dataParameterCollectionMock.VerifyAllExpectations();
    }
    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 GetResults_UsesProjection ()
    {
      _dataReaderMock.Stub (stub => stub.Read()).Return (true).Repeat.Once();
      _dataReaderMock.Stub (stub => stub.GetValue (0)).Return ("testColumnValue1").Repeat.Once();
      _dataReaderMock.Stub (stub => stub.Read()).Return (false);

      var projectionMock = MockRepository.GenerateMock<Func<IDatabaseResultRow, string>>();

      var retriever = new QueryResultRetriever (_connectionManagerStub, _resolverStub);
      var result = retriever.GetResults (projectionMock, "Text", new CommandParameter[0]).ToArray();

      Assert.That (result[0], Is.Null);
      projectionMock.AssertWasCalled (p => p.Invoke (Arg<IDatabaseResultRow>.Is.Anything));
      projectionMock.VerifyAllExpectations();
    }