############################################################################### # # tkt-e36e05e299.eagle -- # # Written by Joe Mistachkin. # Released to the public domain, use at your own risk! # ############################################################################### package require Eagle package require Eagle.Library package require Eagle.Test runTestPrologue ############################################################################### package require System.Data.SQLite.Test runSQLiteTestPrologue ############################################################################### proc hasIndexOutOfRangeException { value } { return [regexp -- { System\.IndexOutOfRangeException: } $value] } ############################################################################### runTest {test tkt-e36e05e299-1.1 {GetOrdinal, -1 for not found} -setup { setupDb [set fileName tkt-e36e05e299-1.1.db] } -body { sql execute $db { CREATE TABLE t1(x); INSERT INTO t1 (x) VALUES(NULL); } set dataReader [sql execute \ -execute reader -format datareader \ -alias $db "SELECT x FROM t1 ORDER BY x;"] lappend result(1) [catch {$dataReader GetOrdinal x} result(2)] if {$result(1)} then { set result(2) [hasIndexOutOfRangeException $result(2)] } lappend result(3) [catch {$dataReader GetOrdinal y} result(4)] if {$result(3)} then { set result(4) [hasIndexOutOfRangeException $result(4)] } testArrayGet result } -cleanup { unset -nocomplain dataReader cleanupDb $fileName db unset -nocomplain result db fileName } -constraints \ {eagle monoBug28 command.sql compile.DATA SQLite System.Data.SQLite} -result \ {1 0 2 0 3 0 4 -1}} ############################################################################### runTest {test tkt-e36e05e299-1.2 {GetOrdinal, throw on not found} -setup { setupDb [set fileName tkt-e36e05e299-1.2.db] "" "" "" StrictConformance } -body { sql execute $db { CREATE TABLE t1(x); INSERT INTO t1 (x) VALUES(NULL); } set dataReader [sql execute \ -execute reader -format datareader \ -alias $db "SELECT x FROM t1 ORDER BY x;"] lappend result(1) [catch {$dataReader GetOrdinal x} result(2)] if {$result(1)} then { set result(2) [hasIndexOutOfRangeException $result(2)] } lappend result(3) [catch {$dataReader GetOrdinal y} result(4)] if {$result(3)} then { set result(4) [hasIndexOutOfRangeException $result(4)] } testArrayGet result } -cleanup { unset -nocomplain dataReader cleanupDb $fileName db unset -nocomplain result db fileName } -constraints \ {eagle monoBug28 command.sql compile.DATA SQLite System.Data.SQLite} -result \ {1 0 2 0 3 1 4 1}} ############################################################################### rename hasIndexOutOfRangeException "" ############################################################################### runSQLiteTestEpilogue runTestEpilogue