示例#1
0
        public static string GetQualifiedTableOrViewName <TEntity>(this IDbTest test, string tableOrViewName = null, string schema = null, bool isRequired = true)
        {
            if (string.IsNullOrEmpty(tableOrViewName))
            {
                var info = test.GetTableOrViewInfoFromTest();
                tableOrViewName = info.Name;
                schema          = info.Schema;
                if (String.IsNullOrEmpty(info.Name))
                {
                    info            = GetTableOrViewInfoFromType(typeof(TEntity));
                    tableOrViewName = info.Name;
                    schema          = info.Schema;
                }
            }


            if (string.IsNullOrEmpty(tableOrViewName))
            {
                if (isRequired)
                {
                    throw new DbTestException("Failed to run test. Missing required tableOrViewName value.");
                }
                return(null);
            }

            tableOrViewName = tableOrViewName.Trim();
            schema          = (schema ?? "dbo").Trim();

            if (!tableOrViewName.StartsWith("["))
            {
                tableOrViewName = $"[{tableOrViewName}]";
            }

            if (!schema.StartsWith("["))
            {
                schema = $"[{schema}]";
            }

            return($"{schema}.{tableOrViewName}");
        }
示例#2
0
        public static SqlRequest InvokeScalarFunction(this IDbTest test, string functionName, string schema = null, params SqlParameter[] parameters)
        {
            var sql        = new StringBuilder($"Select {(!string.IsNullOrEmpty(schema) ? $"{schema}." : "")}{functionName}(");
            var firstParam = true;

            foreach (var p in parameters)
            {
                if (firstParam)
                {
                    firstParam = false;
                }
                else
                {
                    sql.Append(", ");
                }

                sql.Append(p.ParameterName);
            }

            sql.Append(") as RetVal");

            return(SqlRequest.RunSqlText(sql.ToString(), parameters));
        }
示例#3
0
 public static SqlRequest ReturnAllRows <TEntity>(this IDbTest test, params SqlParameter[] parameters)
 {
     return(SqlRequest.ReturnAllRows(test.GetQualifiedTableOrViewName <TEntity>(), parameters));
 }
示例#4
0
 private static (string Name, string Schema) GetTableOrViewInfoFromTest(this IDbTest test)
 {
     return(GetTableOrViewInfoFromType(test.GetType()));
 }
示例#5
0
 public static SqlRequest RunTableDirect <TEntity>(this IDbTest test, params SqlParameter[] parameters)
 {
     return(SqlRequest.RunTableDirect(test.GetQualifiedTableOrViewName <TEntity>(), parameters));
 }
示例#6
0
 public static string GetQualifiedTableOrViewName(this IDbTest test, string tableOrViewName = null, string schema = null, bool isRequired = true)
 {
     return(test.GetQualifiedTableOrViewName <object>(tableOrViewName, schema, isRequired));
 }
示例#7
0
 public static SqlRequest RunTableDirect(this IDbTest test, string tableName = null, string schema = null, params SqlParameter[] parameters)
 {
     return(SqlRequest.RunTableDirect(test.GetQualifiedTableOrViewName(tableName, schema), parameters));
 }
示例#8
0
 public static SqlRequest ExecuteStoredProcedure(this IDbTest test, string sprocName = null, string schema = null, params SqlParameter[] parameters)
 {
     return(SqlRequest.RunStoredProcedure(sprocName, schema, parameters));
 }
示例#9
0
 public static SqlRequest RunSqlText(this IDbTest test, string sql = null, params SqlParameter[] parameters)
 {
     return(SqlRequest.RunSqlText(sql, parameters));
 }
示例#10
0
 public static SqlRequest DoNothing(this IDbTest test)
 {
     return(null);
 }
示例#11
0
 public static SqlRequest CommitDataContextNow(this IDbTest test)
 {
     return(SqlRequest.CommitDataContextNow());
 }