private void AssertValue <T>(IDatabaseServices services, string defaultValueName, string defaultValue, object expectedValue) { var sqlExecutor = new SQLExecutor(services); string sql = "SELECT " + defaultValue + " o1 FROM DUMMY" + MachineName; object result = sqlExecutor.ExecuteScalar(sql).RuntimeValue <T>(); AssertEqual(expectedValue, result, string.Format(errorMessageFormat, defaultValueName, sql)); }
private static void AssertValues <T>(IDatabaseServices services, string sqlFunctionFragment, T expectedValue) { var sqlExecutor = new SQLExecutor(services); string sql = string.Format(SQL_FORMAT, sqlFunctionFragment, MachineName); T result = sqlExecutor.ExecuteScalar(sql).RuntimeValue <T>(); AssertEqual(expectedValue, result, string.Format(ERROR_MESSAGE_FORMAT, sqlFunctionFragment, sql)); }
public void TestParameterPrefix(DatabaseProviderTestCase tc) { var databaseServices = tc.Services; var sqlExecutor = new SQLExecutor(databaseServices); string sql = string.Format("SELECT VAL FROM DUMMY" + MachineName + " WHERE ID = {0}", sqlExecutor.GetParameterName(0, typeof(int))); int value = sqlExecutor.ExecuteScalar(sql, 1).RuntimeValue <int>(); Assert.AreEqual(1, value, "ParameterPrefix didn't work as expected. SQL: " + sql); }
public void TestBinaryDataDefaultValue(DatabaseProviderTestCase tc) { var databaseServices = tc.Services; var sqlExecutor = new SQLExecutor(databaseServices); IDMLDefaultValues dmlDefaultValues = databaseServices.DMLService.DefaultValues; string sql = "SELECT " + dmlDefaultValues.BinaryData + " o1 FROM DUMMY" + MachineName; byte[] result = sqlExecutor.ExecuteScalar(sql).RuntimeValue <byte[]>(); AssertEqual(0, (result ?? new byte[0]).Length, string.Format(errorMessageFormat, "Null", sql)); }
public void TestEscapeIdentifier(DatabaseProviderTestCase tc) { var databaseServices = tc.Services; var sqlExecutor = new SQLExecutor(databaseServices); IDMLIdentifiers dmlIdentifiers = databaseServices.DMLService.Identifiers; string sql = "SELECT " + dmlIdentifiers.EscapeIdentifier("DUMMY" + MachineName) + "." + dmlIdentifiers.EscapeIdentifier("SELECT") + " FROM " + dmlIdentifiers.EscapeIdentifier("DUMMY" + MachineName); int value = sqlExecutor.ExecuteScalar(sql).RuntimeValue <int>(); AssertEqual(123, value, "Escape function didn't work as expected. SQL: " + sql); }
private static void AssertValue <T>(IDatabaseServices services, string funcName, string sql, T expectedValue, params object[] parameters) { var sqlExecutor = new SQLExecutor(services); if (parameters.Length != 0) { sql = string.Format(sql, parameters.Select <object, object>((o, i) => sqlExecutor.GetParameterName(i, o.GetType())).ToArray()); } T result = sqlExecutor.ExecuteScalar(sql, parameters).RuntimeValue <T>(); AssertEqual(expectedValue, result, string.Format(ERROR_MESSAGE_FORMAT, funcName, string.Join(", ", parameters.Select <object, string>(o => o.ToString()).ToArray()), sql)); }
public void TestCount(DatabaseProviderTestCase tc) { var databaseServices = tc.Services; var sqlExecutor = new SQLExecutor(databaseServices); IDictionary <StatementPlaceholder, string> countPlaceholders = databaseServices.DMLService.Queries.SQLPlaceholderValuesForCountQuery(); string beforeStatement = countPlaceholders.GetPlaceholderValueTrimStart(StatementPlaceholder.BeforeStatement); string afterStatement = countPlaceholders.GetPlaceholderValueTrimEnd(StatementPlaceholder.AfterStatement); string sql = beforeStatement + "SELECT NAME FROM PERSON" + MachineName + " WHERE " + databaseServices.DMLService.Operators.Equal("1", "1") + afterStatement; int count = sqlExecutor.ExecuteScalar(sql).RuntimeValue <int>(); AssertEqual(3, count, string.Format(ERROR_MESSAGE_FORMAT, "Count", sql)); }
public void TestListTableSourcesValidateAllQualifiedNames(DatabaseProviderTestCase tc) { var databaseServices = tc.Services; IDatabaseInfo db = databaseServices.ObjectFactory.CreateDatabaseInfo(GetDatabaseIdentifier(databaseServices)); IEnumerable <ITableSourceInfo> tableSources = databaseServices.IntrospectionService.ListTableSourcesWithoutFilter(db); foreach (var tableSource in tableSources) { if (tableSource.QualifiedName.ToLowerInvariant().EndsWith(MachineName.ToLowerInvariant())) { SQLExecutor sqlExecutor = new SQLExecutor(databaseServices); string sql = "SELECT COUNT(*) FROM " + tableSource.QualifiedName; Scalar result = sqlExecutor.ExecuteScalar(sql); Assert.IsTrue(result.Value <int>() >= 0, "Error counting the rows of table source '" + tableSource.Name + "' using the SQL: " + sql); } } }
private void InnerGetEntity(IDatabaseServices databaseServices, IDictionary <SelectPlaceholder, string> getPlaceholders, bool forUpdate) { string beforeStatement = getPlaceholders.GetPlaceholderValueTrimStart(SelectPlaceholder.BeforeStatement); string afterSelect = getPlaceholders.GetPlaceholderValueTrimStart(SelectPlaceholder.AfterSelectKeyword); string beforeFrom = getPlaceholders.GetPlaceholderValueTrimStart(SelectPlaceholder.BeforeFromKeyword); string afterFrom = getPlaceholders.GetPlaceholderValueTrimStart(SelectPlaceholder.AfterFromKeyword); string beforeWhere = getPlaceholders.GetPlaceholderValueTrimStart(SelectPlaceholder.BeforeWhereKeyword); string afterWhere = getPlaceholders.GetPlaceholderValueTrimStart(SelectPlaceholder.AfterWhereKeyword); string afterStatement = getPlaceholders.GetPlaceholderValueTrimEnd(SelectPlaceholder.AfterStatement); string sql = beforeStatement + "SELECT " + afterSelect + "ID " + beforeFrom + "FROM " + afterFrom + "DUMMY" + MachineName + " " + beforeWhere + "WHERE " + afterWhere + databaseServices.DMLService.Operators.Equal("ID", "1") + afterStatement; var sqlExecutor = new SQLExecutor(databaseServices); int returnedId = sqlExecutor.ExecuteScalar(sql).RuntimeValue <int>(); int expectedId = 1; AssertEqual(expectedId, returnedId, string.Format(errorMessageFormat, (forUpdate ? "GetEntityForUpdate" : "GetEntity"), sql)); }
public void TestGetValidIdentifier(DatabaseProviderTestCase tc) { var databaseServices = tc.Services; var sqlExecutor = new SQLExecutor(databaseServices); IDMLIdentifiers dmlIdentifiers = databaseServices.DMLService.Identifiers; string paramPrefix = databaseServices.ExecutionService.ParameterPrefix; string param = ""; for (int i = 0; i < dmlIdentifiers.MaxLength - 1; i++) { param += "m"; } string paramName = dmlIdentifiers.GetValidIdentifier("inparam" + param, true); string parameterForSQL = paramPrefix + paramName; string sql = string.Format("SELECT {0} FROM DUMMY" + MachineName, parameterForSQL); int value = sqlExecutor.ExecuteScalar(sql, (i, t) => paramPrefix + paramName, 1).RuntimeValue <int>(); AssertEqual(1, value, "GetValidIdentifier didn't work as expected. SQL: " + sql); }