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