public void ExtractParameter_ShouldMapSpecifiedParameterEnumerableToIDbDataParameter() { //ARRANGE var specifiedParameter1 = new SpecifiedParameter("testName", "testValue", DbType.String, ParameterDirection.InputOutput, 3, 4, 5); var specifiedParameter2 = new SpecifiedParameter("testName", 5436543, DbType.Int32, ParameterDirection.Output, 13, 14, 15); var specifiedParameters = new[] { specifiedParameter1, specifiedParameter2 }; var context = CreateContext(specifiedParameters); var dataParameters = new List <IDbDataParameter>(); CommandParametersFake.CallsTo(x => x.Add(A <object> ._)) .Invokes((object parameter) => dataParameters.Add((IDbDataParameter)parameter)); //ACT _parameterExtractor.ExtractParameter(context); //ASSERT Assert.AreEqual(2, dataParameters.Count); AssertSpecifiedParameterWithDbDataParameter(specifiedParameter1, dataParameters[0]); AssertSpecifiedParameterWithDbDataParameter(specifiedParameter2, dataParameters[1]); }
public void SetParameter_ShouldThrowArgumentNullException_WhenValueIsNull() { //ARRANGE const string parameterName = "testParameterName"; var parameter = new SpecifiedParameter(parameterName); //ASSERT Assert.Throws <ArgumentNullException>(() => parameter.SetParameter(null)); }
private bool AssertSpecifiedParameterWithDbDataParameter(SpecifiedParameter specifiedParameter, IDbDataParameter dataParameter) { Assert.AreEqual(specifiedParameter.ParameterName, dataParameter.ParameterName); Assert.AreEqual(specifiedParameter.Value, dataParameter.Value); Assert.AreEqual(specifiedParameter.DbType.Value, dataParameter.DbType); Assert.AreEqual(specifiedParameter.Direction.Value, dataParameter.Direction); Assert.AreEqual(specifiedParameter.Precision.Value, dataParameter.Precision); Assert.AreEqual(specifiedParameter.Scale.Value, dataParameter.Scale); Assert.AreEqual(specifiedParameter.Size.Value, dataParameter.Size); return(true); }
public void Constructor_ShouldInitializeWithDefaultValues() { //ARRANGE const string parameterName = "testParameterName"; const ParameterDirection direction = ParameterDirection.Input; //ACT var parameter = new SpecifiedParameter(parameterName); //ASSERT Assert.AreEqual(parameterName, parameter.ParameterName); Assert.IsNull(parameter.Value); Assert.IsNull(parameter.DbType); Assert.AreEqual(direction, parameter.Direction); Assert.IsNull(parameter.Precision); Assert.IsNull(parameter.Scale); Assert.IsNull(parameter.Size); }
public void GetValueFromOutputParameter() { //ARRANGE const string text = "testText"; const string duplicateText = "testTexttestText"; const string queryText = "exec dbo.spDuplicateString @text out"; var parameter = new SpecifiedParameter("@text", text, direction: ParameterDirection.InputOutput, size: 128); var query = _queryFactory.CreateQuery(); //ACT query.Execute(queryText, parameter); //ASSERT Assert.AreEqual(duplicateText, parameter.GetOutputValue <string>()); query.Dispose(); }
public void GetOutputValue_ShouldReturnValueFromDataParameter() { //ARRANGE const string parameterName = "testParameterName"; var parameter = new SpecifiedParameter(parameterName); const int value = 5; IDbDataParameter dataParameter = A.Fake <IDbDataParameter>(); dataParameter.CallsTo(x => x.Value) .Returns(value); //ACT parameter.SetParameter(dataParameter); var valueFromParameter = parameter.GetOutputValue <int>(); //ASSERT Assert.AreEqual(value, valueFromParameter); dataParameter.CallsTo(x => x.Value) .MustHaveHappened(Repeated.Exactly.Once); }
public void Constructor_ShouldInitializeWithSpecifiedValues() { //ARRANGE const string parameterName = "testParameterName"; const int value = 4; const DbType dbType = DbType.Date; const ParameterDirection direction = ParameterDirection.Input; const byte precision = 4; const byte scale = 8; const int size = 3; //ACT var parameter = new SpecifiedParameter(parameterName, value, dbType, direction, precision, scale, size); //ASSERT Assert.AreEqual(parameterName, parameter.ParameterName); Assert.AreEqual(value, parameter.Value); Assert.AreEqual(dbType, parameter.DbType); Assert.AreEqual(direction, parameter.Direction); Assert.AreEqual(precision, parameter.Precision); Assert.AreEqual(scale, parameter.Scale); Assert.AreEqual(size, parameter.Size); }
private void AddParameter(Context.Infrastructure.AdoExecutorContext context, SpecifiedParameter parameter) { IDbDataParameter dataParameter = context.Configuration.DataObjectFactory.CreateDataParameter(); dataParameter.ParameterName = parameter.ParameterName; dataParameter.Value = parameter.Value ?? DBNull.Value; if (parameter.DbType.HasValue) { dataParameter.DbType = parameter.DbType.Value; } if (parameter.Direction.HasValue) { dataParameter.Direction = parameter.Direction.Value; } if (parameter.Precision.HasValue) { dataParameter.Precision = parameter.Precision.Value; } if (parameter.Scale.HasValue) { dataParameter.Scale = parameter.Scale.Value; } if (parameter.Size.HasValue) { dataParameter.Size = parameter.Size.Value; } parameter.SetParameter(dataParameter); context.Command.Parameters.Add(dataParameter); }