X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Ftest-fddl.lisp;h=98cd21601d13b73ce54105526dfa0b6f2efcbaef;hb=a4097e19c5157e87b9991549bc44f3ef598aeb90;hp=53fd5c75f02e83da9bf47bec2bd7131a2a5ed55b;hpb=72c5d9d0555b01290409dc2607935db823fa1f10;p=clsql.git diff --git a/tests/test-fddl.lisp b/tests/test-fddl.lisp index 53fd5c7..98cd216 100644 --- a/tests/test-fddl.lisp +++ b/tests/test-fddl.lisp @@ -21,14 +21,14 @@ (setq *rt-fddl* '( - + ;; list current tables (deftest :fddl/table/1 (apply #'values (sort (mapcar #'string-downcase (clsql:list-tables :owner *test-database-user*)) #'string>)) - "employee" "company" "clsql_object_v") + "employee" "company") ;; create a table, test for its existence, drop it and test again (deftest :fddl/table/2 @@ -131,25 +131,23 @@ ;; not in sqlite (deftest :fddl/view/4 - (if (eql *test-database-type* :sqlite) - (values nil '(("Josef" "Stalin" "stalin@soviet.org"))) - (progn (clsql:create-view [lenins-group] - :column-list '([forename] [surname] [email]) - :as [select [first-name] [last-name] [email] - :from [employee] - :where [= [managerid] 1]]) - (let ((result - (list - ;; Shouldn't exist + (progn (clsql:create-view [lenins-group] + :column-list '([forename] [surname] [email]) + :as [select [first-name] [last-name] [email] + :from [employee] + :where [= [managerid] 1]]) + (let ((result + (list + ;; Shouldn't exist (clsql:select [forename] [surname] [email] - :from [lenins-group] - :where [= [surname] "Lenin"]) - ;; Should exist + :from [lenins-group] + :where [= [surname] "Lenin"]) + ;; Should exist (car (clsql:select [forename] [surname] [email] - :from [lenins-group] - :where [= [surname] "Stalin"]))))) - (clsql:drop-view [lenins-group] :if-does-not-exist :ignore) - (apply #'values result)))) + :from [lenins-group] + :where [= [surname] "Stalin"]))))) + (clsql:drop-view [lenins-group] :if-does-not-exist :ignore) + (apply #'values result))) nil ("Josef" "Stalin" "stalin@soviet.org")) ;; create an index, test for existence, drop it and test again @@ -159,13 +157,9 @@ (values (clsql:index-exists-p [bar] :owner *test-database-user*) (progn - (case *test-database-type* - (:mysql - (clsql:drop-index [bar] :on [employee] - :if-does-not-exist :ignore)) - (t - (clsql:drop-index [bar]:if-does-not-exist :ignore))) - (clsql:view-exists-p [bar] :owner *test-database-user*)))) + (clsql:drop-index [bar] :on [employee] + :if-does-not-exist :ignore) + (clsql:index-exists-p [bar] :owner *test-database-user*)))) t nil) ;; create indexes with names as strings, symbols and in square brackets @@ -175,13 +169,33 @@ (dolist (name names) (clsql:create-index name :on [employee] :attributes '([emplid])) (push (clsql:index-exists-p name :owner *test-database-user*) result) - (case *test-database-type* - (:mysql - (clsql:drop-index name :on [employee] :if-does-not-exist :ignore)) - (t (clsql:drop-index name :if-does-not-exist :ignore)))) + (clsql:drop-index name :on [employee] :if-does-not-exist :ignore)) (apply #'values result)) t t t) +;; test list-table-indexes +(deftest :fddl/index/3 + (progn + (clsql:execute-command "CREATE TABLE I3TEST (a char(10), b integer)") + (clsql:create-index [bar] :on [i3test] :attributes + '([a]) :unique t) + (clsql:create-index [foo] :on [i3test] :attributes + '([b]) :unique nil) + (values + + (sort + (mapcar + #'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]) + t))) + ("bar" "foo") nil t) + ;; create an sequence, test for existence, drop it and test again (deftest :fddl/sequence/1 (progn (clsql:create-sequence [foo])