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));
     }));
 }
 private static ISetup <TConnection, Task <TResult> > SetupQueryAsync <TResult, TConnection>(Mock <TConnection> mock)
     where TConnection : class, IDbConnection
 {
     return(DbCommandSetup.SetupCommandAsync <TResult, TConnection>(
                mock,
                (commandMock, result) =>
     {
         commandMock
         .Protected()
         .Setup <Task <DbDataReader> >(
             "ExecuteDbDataReaderAsync",
             ItExpr.IsAny <CommandBehavior>(),
             ItExpr.IsAny <CancellationToken>())
         .ReturnsAsync(() => DbDataReaderProvider.DbDataReader(result));
     }));
 }