public void ExecuteProcedure_OneParameter <A>(Mock <IServiceForOracle> serviceMock, string procedure)
        {
            var fixture = new Fixture();
            var valueA  = fixture.Create <A>();

            serviceMock.Setup(s => s.ExecuteProcedure(procedure, It.IsAny <IParam>())).Verifiable();

            ProcedureExtensions.ExecuteProcedure <A>(serviceMock.Object, procedure, valueA);

            serviceMock.Verify();
        }
        public void ExecuteProcedure_OneRefParameter <A>(Mock <IServiceForOracle> serviceMock, string procedure)
        {
            var fixture = new Fixture();
            var valueA  = fixture.Create <A>();

            var expectedA = fixture.Create <A>();

            serviceMock.Setup(s => s.ExecuteProcedure(procedure, It.IsAny <IParam>()))
            .Callback((string pro, IParam[] p) => SetParamValues(p, expectedA));

            ProcedureExtensions.ExecuteProcedure <A>(serviceMock.Object, procedure, ref valueA);

            Assert.Equal(expectedA, valueA);
        }
        public void ExecuteProcedure_CRefABParameter <A, B, C>(Mock <IServiceForOracle> serviceMock, string procedure)
        {
            var fixture = new Fixture();
            var valueA  = fixture.Create <A>();
            var valueB  = fixture.Create <B>();
            var valueC  = fixture.Create <C>();

            var expectedC = fixture.Create <C>();

            serviceMock.Setup(s => s.ExecuteProcedure(procedure, It.IsAny <IParam>(), It.IsAny <IParam>(), It.IsAny <IParam>()))
            .Callback((string f, IParam[] p) => SetParamValues(p, valueA, valueB, expectedC));

            ProcedureExtensions.ExecuteProcedure <A, B, C>(serviceMock.Object, procedure, valueA, valueB, ref valueC);

            Assert.Equal(valueC, expectedC);
        }
        public void ExecuteProcedure_DRefABCParameter <A, B, C, D>(Mock <IServiceForOracle> serviceMock, string function)
        {
            var fixture = new Fixture();
            var valueA  = fixture.Create <A>();
            var valueB  = fixture.Create <B>();
            var valueC  = fixture.Create <C>();
            var valueD  = fixture.Create <D>();

            var expectedD = fixture.Create <D>();

            serviceMock.Setup(s => s.ExecuteProcedure(function, It.IsAny <IParam>(), It.IsAny <IParam>(), It.IsAny <IParam>(), It.IsAny <IParam>()))
            .Callback((string f, IParam[] p) => SetParamValues(p, valueA, valueB, valueC, expectedD));

            ProcedureExtensions.ExecuteProcedure <A, B, C, D>(serviceMock.Object, function, valueA, valueB, valueC, ref valueD);

            Assert.Equal(expectedD, valueD);
        }