private static ISetup <TConnection, TResult> SetupExecuteScalar <TResult, TConnection>(Mock <TConnection> mock)
     where TConnection : class, IDbConnection
 {
     return(DbCommandSetup.SetupCommand <TResult, TConnection>(
                mock,
                (commandMock, result) =>
     {
         commandMock
         .Setup(command => command.ExecuteScalar())
         .Returns(() => result());
     }));
 }
 private static ISetup <TConnection, int> SetupExecute <TConnection>(Mock <TConnection> mock)
     where TConnection : class, IDbConnection
 {
     return(DbCommandSetup.SetupCommand <int, TConnection>(
                mock,
                (commandMock, result) =>
     {
         commandMock
         .Setup(command => command.ExecuteNonQuery())
         .Returns(() => result());
     }));
 }
 private static ISetup <TConnection, TResult> SetupQuery <TResult, TConnection>(Mock <TConnection> mock)
     where TConnection : class, IDbConnection
 {
     return(DbCommandSetup.SetupCommand <TResult, TConnection>(
                mock,
                (commandMock, result) =>
     {
         commandMock
         .Setup(command => command.ExecuteReader(It.IsAny <CommandBehavior>()))
         .Returns(() => DbDataReaderProvider.DbDataReader(result));
     }));
 }