Пример #1
0
        public void ExtrtactParameter_ShouldThrowAdoExecutorException_WhenParameterTypeIsNotPrimitive()
        {
            //ARRANGE
            var dictionary = new Dictionary <string, object>();

            dictionary["testParameter"] = "testValue";
            var context = CreateContext(dictionary);

            SqlPrimitiveDataTypesFake.CallsTo(x => x.IsSqlPrimitiveType(A <Type> ._))
            .Returns(false);

            //ASSERT
            Assert.Throws <AdoExecutorException>(() => _parameterExtractor.ExtractParameter(context));
        }
        public void CanProcess_ShouldReturnFalse_WhenParametersTypeIsPrimitive()
        {
            //ARRANGE
            var context = CreateContext(new string[0]);

            SqlPrimitiveDataTypesFake.CallsTo(x => x.IsSqlPrimitiveType(A <Type> ._))
            .Returns(true);

            //ACT
            var canProcess = _parameterExtractor.CanProcess(context);

            //ASSERT
            Assert.IsFalse(canProcess);
        }
Пример #3
0
        public void ExtractParameter_ShouldAddEqualParametersThanDataRowColumns()
        {
            //ARRANGE
            var dictionary = new Dictionary <string, object>();

            dictionary["testColumn1"] = "testValue1";
            dictionary["testColumn2"] = 2;

            var dataObjectFactory = A.Fake <IDataObjectFactory>();

            ConfigurationFake.CallsTo(x => x.DataObjectFactory)
            .Returns(dataObjectFactory);

            var dataParameterCollectionFake = A.Fake <IDataParameterCollection>();

            CommandFake.CallsTo(x => x.Parameters)
            .Returns(dataParameterCollectionFake);

            var context = CreateContext(dictionary);

            SqlPrimitiveDataTypesFake.CallsTo(x => x.IsSqlPrimitiveType(A <Type> ._))
            .Returns(true);

            //ACT
            _parameterExtractor.ExtractParameter(context);

            //ASSERT
            dataParameterCollectionFake.CallsTo(
                x => x.Add(A <IDbDataParameter> .That.Matches(
                               parameter => parameter.ParameterName == "testColumn1" && (string)parameter.Value == "testValue1")))
            .MustHaveHappened(Repeated.Exactly.Once);

            dataParameterCollectionFake.CallsTo(
                x => x.Add(A <IDbDataParameter> .That.Matches(
                               parameter => parameter.ParameterName == "testColumn2" && (int)parameter.Value == 2)))
            .MustHaveHappened(Repeated.Exactly.Once);

            dataObjectFactory.CallsTo(x => x.CreateDataParameter())
            .MustHaveHappened(Repeated.Exactly.Twice);
        }
        public void ExtractParameter_ShouldAddEqualParametersThanObjectProperties()
        {
            //ARRANGE
            const string firstItem  = "test1";
            const int    secondItem = 2;

            var obj     = new Tuple <string, int>(firstItem, secondItem);
            var context = CreateContext(obj);

            var dataObjectFactory = A.Fake <IDataObjectFactory>();

            ConfigurationFake.CallsTo(x => x.DataObjectFactory)
            .Returns(dataObjectFactory);

            var dataParameterCollectionFake = A.Fake <IDataParameterCollection>();

            CommandFake.CallsTo(x => x.Parameters)
            .Returns(dataParameterCollectionFake);

            SqlPrimitiveDataTypesFake.CallsTo(x => x.IsSqlPrimitiveType(A <Type> ._))
            .Returns(true);

            //ACT
            _parameterExtractor.ExtractParameter(context);

            //ASSERT
            dataParameterCollectionFake.CallsTo(
                x => x.Add(A <IDbDataParameter> .That.Matches(
                               parameter => parameter.ParameterName == "Item1" && (string)parameter.Value == firstItem)))
            .MustHaveHappened(Repeated.Exactly.Once);

            dataParameterCollectionFake.CallsTo(
                x => x.Add(A <IDbDataParameter> .That.Matches(
                               parameter => parameter.ParameterName == "Item2" && (int)parameter.Value == secondItem)))
            .MustHaveHappened(Repeated.Exactly.Once);

            dataObjectFactory.CallsTo(x => x.CreateDataParameter())
            .MustHaveHappened(Repeated.Exactly.Twice);
        }