/// <summary>
        /// Creates a builder which can build a database command tester.
        /// </summary>
        /// <param name="commandText">The expected command text.</param>
        /// <param name="commandType">The expected command type.</param>
        /// <param name="commandTimeout">The expected command timeout.</param>
        public DbCommandTestBuilder(string commandText, CommandType commandType = CommandType.Text, int commandTimeout = 30)
        {
            ArgumentNullGuard.NotNullOrWhiteSpace(commandText, nameof(commandText));

            IDataParameterCollection dataParameterCollection = MockRepository.GenerateMock <IDataParameterCollection>();

            dataParameterCollection.Stub(m => m.Count)
            .WhenCalled(e => e.ReturnValue = _dataParameterCollection.Count)
            .Return(0)
            .Repeat.Any();
            dataParameterCollection.Stub(m => m[Arg <string> .Is.Anything])
            .WhenCalled(e => e.ReturnValue = _dataParameterCollection.SingleOrDefault(m => string.CompareOrdinal((string)e.Arguments.ElementAt(0), m.ParameterName) == 0))
            .Return(null)
            .Repeat.Any();

            _expectedDbCommand = MockRepository.GenerateMock <IDbCommand>();
            _expectedDbCommand.Stub(m => m.CommandText)
            .Return(commandText)
            .Repeat.Any();
            _expectedDbCommand.Stub(m => m.CommandType)
            .Return(commandType)
            .Repeat.Any();
            _expectedDbCommand.Stub(m => m.CommandTimeout)
            .Return(commandTimeout)
            .Repeat.Any();
            _expectedDbCommand.Stub(m => m.Parameters)
            .WhenCalled(e => e.ReturnValue = dataParameterCollection)
            .Return(null)
            .Repeat.Any();
        }
            public void SetupTestFixture()
            {
                _parameterName = "Given name";
                _parameterValue = new { Property = "given value" };
                _parameterNumber = 5;

                _dbCommand = MockRepository.GenerateMock<IDbCommand>();
                _dataParameter = MockRepository.GenerateMock<IDbDataParameter>();
                _parameters = MockRepository.GenerateMock<IDataParameterCollection>();

                _parameters.Stub( p => p.Add( _dataParameter ) ).Return( _parameterNumber );
                _dbCommand.Stub( c => c.CreateParameter() ).Return( _dataParameter );
                _dbCommand.Stub( c => c.Parameters ).Return( _parameters );

                _result = DbCommandExtensions.AddParameter( _dbCommand, _parameterName, _parameterValue );
            }