Exemple #1
0
        public void 例外系_接続タイムアウト_Timeout10秒()
        {
            var ex = Assert.Throws <System.Data.SqlClient.SqlException>(() =>
            {
                var constr = @"Data Source=8.8.8.8;Database=Northwind;Integrated Security=False;User ID=testman;Password=testpwd;Pooling=true;Connection Timeout=10;";
                using (var db = new PetaPoco.DatabaseExtension(constr, PetaPoco.Database.RDBType.SqlServer))
                {
                    var rec = db.SingleOrDefaultById <PtTable01>("01");
                }
            });

            Assert.Equal(53, ex.Number);
            _output.WriteLine(ex.ToString());
            _output.WriteLine(ex.Number.ToString());
        }
Exemple #2
0
        public void 例外系_接続文字列_サービスダウンサーバ()
        {
            var constr = "Server=localhost;Port=5432;Database=dvdrental;Encoding=UTF8;User Id=testman;Password=testpwd;";

            var ex = Assert.Throws <Npgsql.NpgsqlException>(() =>
            {
                using (var db = new PetaPoco.DatabaseExtension(constr, PetaPoco.Database.RDBType.PostgreSql))
                {
                    var rec = db.SingleOrDefaultById <PtTable01>("01");
                }
            });

            _output.WriteLine(ex.ToString());
            Assert.Equal(-2147467259, ex.ErrorCode);
        }
Exemple #3
0
        public void 例外系_接続タイムアウト_Timeout10秒()
        {
            var ex = Assert.Throws <System.Data.SQLite.SQLiteException>(() =>
            {
                var constr = @"Data Source=hoge.sqlite3";
                using (var db = new PetaPoco.DatabaseExtension(constr, PetaPoco.Database.RDBType.SQLite))
                {
                    var rec = db.SingleOrDefaultById <PtTable01>("01");
                }
            });

            Assert.Equal(1, ex.ErrorCode);
            _output.WriteLine(ex.ToString());
            _output.WriteLine(ex.ErrorCode.ToString());
        }
Exemple #4
0
        public void 例外系_接続タイムアウト_Timeout10秒()
        {
            var ex = Assert.Throws <MySqlException>(() =>
            {
                var constr = "Server=8.8.8.8;Connection Timeout=10;Database=employees;uid=testman;pwd=testman;SslMode=None;";
                using (var db = new PetaPoco.DatabaseExtension(constr, PetaPoco.Database.RDBType.MySql))
                {
                    var rec = db.SingleOrDefaultById <PtTable01>("01");
                }
            });

            Assert.Equal(1042, ex.Number);
            _output.WriteLine(ex.ToString());
            _output.WriteLine(ex.Number.ToString());
        }
Exemple #5
0
        public void 例外系_接続文字列_パスワード誤り()
        {
            var rx     = new Regex(";(pwd|password)=(.*?);", RegexOptions.Singleline | RegexOptions.Multiline | RegexOptions.IgnoreCase);
            var constr = rx.Replace(DB.Constr, ";$1=**zapped**;");

            var ex = Assert.Throws <Npgsql.PostgresException>(() =>
            {
                using (var db = new PetaPoco.DatabaseExtension(constr, PetaPoco.Database.RDBType.PostgreSql))
                {
                    var rec = db.SingleOrDefaultById <PtTable01>("01");
                }
            });

            _output.WriteLine(ex.ToString());
            Assert.Equal("28P01", ex.SqlState);     // ユーザ"testman"のパスワード認証に失敗しました
        }
Exemple #6
0
        public void 例外系_接続文字列_サービスダウンサーバ()
        {
            var constr = "Server=localhost;Database=employees;uid=testman;pwd=testman;SslMode=None;";

            var ex = Assert.Throws <MySqlException>(() =>
            {
                using (var db = new PetaPoco.DatabaseExtension(constr, PetaPoco.Database.RDBType.MySql))
                {
                    var rec = db.SingleOrDefaultById <PtTable01>("01");
                }
            });

            Assert.Equal(1042, ex.Number);
            _output.WriteLine(ex.ToString());
            _output.WriteLine(ex.Number.ToString());
        }
Exemple #7
0
        public void 例外系_接続文字列_認証不可アカウント()
        {
            var rx     = new Regex(";(pwd|password)=(.*?);", RegexOptions.Singleline | RegexOptions.Multiline | RegexOptions.IgnoreCase);
            var constr = rx.Replace(DB.Constr, ";$1=**zapped**;");

            var ex = Assert.Throws <System.Data.SqlClient.SqlException>(() =>
            {
                using (var db = new PetaPoco.DatabaseExtension(constr, PetaPoco.Database.RDBType.SqlServer))
                {
                    var rec = db.SingleOrDefaultById <PtTable01>("01");
                }
            });

            Assert.Equal(18456, ex.Number);
            _output.WriteLine(ex.ToString());
            _output.WriteLine(ex.Number.ToString());
        }
Exemple #8
0
        public void 例外系_接続タイムアウト_Timeout30秒()
        {
            var ex = Assert.Throws <Npgsql.NpgsqlException>(() =>
            {
                var constr = "Server=8.8.8.8;Port=5432;Timeout=30;Database=dvdrental;Encoding=UTF8;User Id=testman;Password=testpwd;";
                using (var db = new PetaPoco.DatabaseExtension(constr, PetaPoco.Database.RDBType.PostgreSql))
                {
                    var rec = db.SingleOrDefaultById <PtTable01>("01");
                }
            });

            _output.WriteLine(ex.ToString());
            _output.WriteLine(ex.ErrorCode.ToString());
            Assert.Equal(-2147467259, ex.ErrorCode);

            /*
             *  Message: Test method DevSupport.Tests.Database.例外テスト系.PT2_005_接続タイムアウト_Timeout30秒 threw exception:
             *  System.Net.Sockets.SocketException: 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。
             * */
        }