Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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.");
        }
Exemplo n.º 5
0
 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());
 }
Exemplo n.º 6
0
        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);
        }