public void ExecuteSql_LoginError() { string nonexistentDatabase = "db" + Guid.NewGuid().ToString().Replace("-", ""); var connectionStringBuilder = new SqlConnectionStringBuilder(SqlUtility.ConnectionString); connectionStringBuilder.InitialCatalog = nonexistentDatabase; connectionStringBuilder.IntegratedSecurity = true; string nonexistentDatabaseConnectionString = connectionStringBuilder.ConnectionString; MsSqlExecuter sqlExecuter = NewSqlExecuter(nonexistentDatabaseConnectionString); TestUtility.ShouldFail(() => sqlExecuter.ExecuteSql(new[] { "print 123" }), connectionStringBuilder.DataSource, connectionStringBuilder.InitialCatalog, Environment.UserName); }
public void ExecuteSql_SaveLoadTest() { MsSqlExecuter sqlExecuter = NewSqlExecuter(); string table = GetRandomTableName(); IEnumerable <string> commands = new[] { "CREATE TABLE " + table + " ( A INTEGER )", "INSERT INTO " + table + " SELECT 123" }; sqlExecuter.ExecuteSql(commands); int actual = 0; sqlExecuter.ExecuteReader("SELECT * FROM " + table, dr => actual = dr.GetInt32(0)); Assert.AreEqual(123, actual); }
public void ExecuteSql_ErrorDescriptions() { MsSqlExecuter sqlExecuter = NewSqlExecuter(); IEnumerable <string> commands = new[] { @"print 'xxx' raiserror('aaa', 0, 100) raiserror('bbb', 1, 101) raiserror('ccc', 10, 110) raiserror('ddd', 16, 116) raiserror('eee', 17, 117) raiserror('fff', 18, 118)" }; var expectedStrings = new[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "101", "116", "117", "118" }; // Error of severity 0 and 10 (states "100" and "110") do not require detailed error message. TestUtility.ShouldFail(() => sqlExecuter.ExecuteSql(commands), expectedStrings); }
public void SendUserInfoInSqlContext_WriteWithUser() { var testUser = new TestUserInfo("Bob", "HAL9000"); var sqlExecuter = new MsSqlExecuter(SqlUtility.ConnectionString, new ConsoleLogProvider(), testUser); string table = GetRandomTableName(); var result = new List<string>(); sqlExecuter.ExecuteSql(new [] { @"SELECT Context = (CONVERT([varchar](128),left(context_info(),isnull(nullif(charindex(0x00,context_info())-(1),(-1)),(128))),(0))) INTO " + table}); sqlExecuter.ExecuteReader( @"SELECT * FROM " + table, reader => result.Add(reader[0].ToString())); Console.WriteLine(result.Single()); Assert.IsTrue(result.Single().Contains(testUser.UserName), "context_info should contain username."); Assert.IsTrue(result.Single().Contains(testUser.Workstation), "context_info should contain client workstation."); }
public void SendUserInfoInSqlContext_NoUser() { var testUser = new TestUserInfo(null, null, false); var sqlExecuter = new MsSqlExecuter(SqlUtility.ConnectionString, new ConsoleLogProvider(), testUser); var result = new List<object>(); sqlExecuter.ExecuteReader("SELECT context_info()", reader => result.Add(reader[0])); Console.WriteLine(result.Single()); Assert.AreEqual(typeof(DBNull), result.Single().GetType()); }
public void ExecuteSql_LoginError() { string nonexistentDatabase = "db" + Guid.NewGuid().ToString().Replace("-", ""); var connectionStringBuilder = new SqlConnectionStringBuilder(SqlUtility.ConnectionString); connectionStringBuilder.InitialCatalog = nonexistentDatabase; connectionStringBuilder.IntegratedSecurity = true; string nonexistentDatabaseConnectionString = connectionStringBuilder.ConnectionString; MsSqlExecuter sqlExecuter = new MsSqlExecuter(nonexistentDatabaseConnectionString, new ConsoleLogProvider(), new NullUserInfo()); TestUtility.ShouldFail(() => sqlExecuter.ExecuteSql(new[] { "print 123" }), connectionStringBuilder.DataSource, connectionStringBuilder.InitialCatalog, Environment.UserName); }