X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Ftest-fddl.lisp;h=301c37c0af89f440ac8dd135253ac9ef331a60fe;hb=4d46d4d631cad1c4fe3accbe99f4182d975fd678;hp=c8efdd5d17351d2caa08a16aa1b3a7cd8fa56d03;hpb=f716bb1161cf9e89a96945c4a444244f9d303691;p=clsql.git diff --git a/tests/test-fddl.lisp b/tests/test-fddl.lisp index c8efdd5..301c37c 100644 --- a/tests/test-fddl.lisp +++ b/tests/test-fddl.lisp @@ -28,7 +28,7 @@ (sort (mapcar #'string-downcase (clsql:list-tables :owner *test-database-user*)) #'string<)) - "company" "employee" "type_table") + "addr" "company" "ea_join" "employee" "type_bigint" "type_table") ;; create a table, test for its existence, drop it and test again (deftest :fddl/table/2 @@ -59,14 +59,35 @@ (clsql:drop-table [foo] :if-does-not-exist :ignore)))) "comments" "height" "id" "name") +(deftest :fddl/table/4 + (values + (clsql:table-exists-p "MyMixedCase") + (progn + (clsql:create-table "MyMixedCase" '(([a] integer))) + (clsql:table-exists-p "MyMixedCase")) + (progn + (clsql:drop-table "MyMixedCase") + (clsql:table-exists-p "MyMixedCase"))) + nil t nil) + +(deftest :fddl/table/5 + (prog1 + (progn + (clsql:create-table "MyMixedCase" '(([a] integer))) + (clsql:execute-command "insert into MyMixedCase values (5)") + (clsql:insert-records :into "MyMixedCase" :values '(6)) + (clsql:select [a] :from "MyMixedCase" :order-by '((a :asc)))) + (clsql:drop-table "MyMixedCase")) + ((5) (6))) + (deftest :fddl/attributes/1 (apply #'values (sort (mapcar #'string-downcase (clsql:list-attributes [employee] - :owner *test-database-user*)) + :owner *test-database-user*)) #'string<)) - "birthday" "companyid" "email" "emplid" "first_name" "groupid" "height" + "birthday" "ecompanyid" "email" "emplid" "first_name" "groupid" "height" "last_name" "managerid" "married") (deftest :fddl/attributes/2 @@ -76,24 +97,26 @@ (clsql:list-attribute-types [employee] :owner *test-database-user*)) #'string<)) - "birthday" "companyid" "email" "emplid" "first_name" "groupid" "height" + "birthday" "ecompanyid" "email" "emplid" "first_name" "groupid" "height" "last_name" "managerid" "married") ;; Attribute types are vendor specific so need to test a range (deftest :fddl/attributes/3 - (and (member (clsql:attribute-type [emplid] [employee]) '(:int :integer :int4)) t) + (and (member (clsql:attribute-type [emplid] [employee]) '(:int :integer :int4 :number)) t) t) (deftest :fddl/attributes/4 - (clsql:attribute-type [first-name] [employee]) - :varchar 30 nil 1) + (multiple-value-bind (type length scale nullable) + (clsql:attribute-type [first-name] [employee]) + (values (clsql-sys:in type :varchar :varchar2) length scale nullable)) + t 30 nil 1) (deftest :fddl/attributes/5 - (and (member (clsql:attribute-type [birthday] [employee]) '(:datetime :timestamp)) t) + (and (member (clsql:attribute-type [birthday] [employee]) '(:datetime :timestamp :date)) t) t) (deftest :fddl/attributes/6 - (and (member (clsql:attribute-type [height] [employee]) '(:float :float8)) t) + (and (member (clsql:attribute-type [height] [employee]) '(:float :float8 :number)) t) t) @@ -112,7 +135,7 @@ t nil) ;; create a view, list its attributes and drop it -(when (clsql-base-sys:db-type-has-views? *test-database-underlying-type*) +(when (clsql-sys:db-type-has-views? *test-database-underlying-type*) (deftest :fddl/view/2 (progn (clsql:create-view [lenins-group] :as [select [first-name] [last-name] [email] @@ -206,14 +229,12 @@ #'string-downcase (clsql:list-table-indexes [i3test] :owner *test-database-user*)) #'string-lessp) - (sort (clsql:list-table-indexes [company] :owner *test-database-user*) - #'string-lessp) (progn (clsql:drop-index [bar] :on [i3test]) (clsql:drop-index [foo] :on [i3test]) (clsql:drop-table [i3test]) t))) - t t t ("bar" "foo") nil t) + t t t ("bar" "foo") t) ;; create an sequence, test for existence, drop it and test again (deftest :fddl/sequence/1