From dfb6230f04c4c2129b89d1d421c01bbc3f9fd57f Mon Sep 17 00:00:00 2001 From: Nathan Bird Date: Wed, 13 Jan 2010 18:33:59 -0500 Subject: [PATCH] Moving the insert/update tests to after the select as verifying the update works depends on select working. --- tests/test-fdml.lisp | 212 ++++++++++++++++++++++--------------------- 1 file changed, 107 insertions(+), 105 deletions(-) diff --git a/tests/test-fdml.lisp b/tests/test-fdml.lisp index f48078f..1737a01 100644 --- a/tests/test-fdml.lisp +++ b/tests/test-fdml.lisp @@ -22,111 +22,6 @@ (setq *rt-fdml* '( -;; inserts a record using all values only and then deletes it -(deftest :fdml/insert/1 - (let ((now (get-universal-time))) - (clsql:insert-records :into [employee] - :values `(11 1 "Yuri" "Gagarin" "gagarin@soviet.org" - 1 1 1.85 t ,(clsql:utime->time now) ,now)) - (values - (clsql:select [first-name] [last-name] [email] - :from [employee] :where [= [emplid] 11]) - (progn (clsql:delete-records :from [employee] :where [= [emplid] 11]) - (clsql:select [*] :from [employee] :where [= [emplid] 11])))) - (("Yuri" "Gagarin" "gagarin@soviet.org")) nil) - -;; inserts a record using attributes and values and then deletes it -(deftest :fdml/insert/2 - (progn - (clsql:insert-records :into [employee] - :attributes '(emplid groupid first_name last_name - email ecompanyid managerid) - :values '(11 1 "Yuri" "Gagarin" "gagarin@soviet.org" - 1 1)) - (values - (clsql:select [first-name] [last-name] [email] :from [employee] - :where [= [emplid] 11]) - (progn (clsql:delete-records :from [employee] :where [= [emplid] 11]) - (clsql:select [*] :from [employee] :where [= [emplid] 11])))) - (("Yuri" "Gagarin" "gagarin@soviet.org")) nil) - -;; inserts a record using av-pairs and then deletes it -(deftest :fdml/insert/3 - (progn - (clsql:insert-records :into [employee] - :av-pairs'((emplid 11) (groupid 1) - (first_name "Yuri") - (last_name "Gagarin") - (email "gagarin@soviet.org") - (ecompanyid 1) (managerid 1))) - (values - (clsql:select [first-name] [last-name] [email] :from [employee] - :where [= [emplid] 11]) - (progn (clsql:delete-records :from [employee] :where [= [emplid] 11]) - (clsql:select [first-name] [last-name] [email] :from [employee] - :where [= [emplid] 11])))) - (("Yuri" "Gagarin" "gagarin@soviet.org")) nil) - -;; inserts a records using a query from another table -(deftest :fdml/insert/4 - (progn - (clsql:create-table [employee2] '(([forename] string) - ([surname] string) - ([email] string))) - (clsql:insert-records :into [employee2] - :query [select [first-name] [last-name] [email] - :from [employee]] - :attributes '(forename surname email)) - (prog1 - (equal (clsql:select [*] :from [employee2]) - (clsql:select [first-name] [last-name] [email] - :from [employee])) - (clsql:drop-table [employee2] :if-does-not-exist :ignore))) - t) - -;; updates a record using attributes and values and then deletes it -(deftest :fdml/update/1 - (progn - (clsql:update-records [employee] - :attributes '(first_name last_name email) - :values '("Yuri" "Gagarin" "gagarin@soviet.org") - :where [= [emplid] 1]) - (values - (clsql:select [first-name] [last-name] [email] :from [employee] - :where [= [emplid] 1]) - (progn - (clsql:update-records [employee] - :av-pairs'((first_name "Vladimir") - (last_name "Lenin") - (email "lenin@soviet.org")) - :where [= [emplid] 1]) - (clsql:select [first-name] [last-name] [email] :from [employee] - :where [= [emplid] 1])))) - (("Yuri" "Gagarin" "gagarin@soviet.org")) - (("Vladimir" "Lenin" "lenin@soviet.org"))) - -;; updates a record using av-pairs and then deletes it -(deftest :fdml/update/2 - (progn - (clsql:update-records [employee] - :av-pairs'((first_name "Yuri") - (last_name "Gagarin") - (email "gagarin@soviet.org")) - :where [= [emplid] 1]) - (values - (clsql:select [first-name] [last-name] [email] :from [employee] - :where [= [emplid] 1]) - (progn - (clsql:update-records [employee] - :av-pairs'((first_name "Vladimir") - (last_name "Lenin") - (email "lenin@soviet.org")) - :where [= [emplid] 1]) - (clsql:select [first-name] [last-name] [email] - :from [employee] :where [= [emplid] 1])))) - (("Yuri" "Gagarin" "gagarin@soviet.org")) - (("Vladimir" "Lenin" "lenin@soviet.org"))) - ;; Computed values are not always classified as numeric by psqlodbc (deftest :fdml/query/1 @@ -573,6 +468,113 @@ collect addressid) (1 2)) +;; inserts a record using all values only and then deletes it +(deftest :fdml/insert/1 + (let ((now (get-universal-time))) + (clsql:insert-records :into [employee] + :values `(11 1 "Yuri" "Gagarin" "gagarin@soviet.org" + 1 1 1.85 t ,(clsql:utime->time now) ,now)) + (values + (clsql:select [first-name] [last-name] [email] + :from [employee] :where [= [emplid] 11]) + (progn (clsql:delete-records :from [employee] :where [= [emplid] 11]) + (clsql:select [*] :from [employee] :where [= [emplid] 11])))) + (("Yuri" "Gagarin" "gagarin@soviet.org")) nil) + +;; inserts a record using attributes and values and then deletes it +(deftest :fdml/insert/2 + (progn + (clsql:insert-records :into [employee] + :attributes '(emplid groupid first_name last_name + email ecompanyid managerid) + :values '(11 1 "Yuri" "Gagarin" "gagarin@soviet.org" + 1 1)) + (values + (clsql:select [first-name] [last-name] [email] :from [employee] + :where [= [emplid] 11]) + (progn (clsql:delete-records :from [employee] :where [= [emplid] 11]) + (clsql:select [*] :from [employee] :where [= [emplid] 11])))) + (("Yuri" "Gagarin" "gagarin@soviet.org")) nil) + +;; inserts a record using av-pairs and then deletes it +(deftest :fdml/insert/3 + (progn + (clsql:insert-records :into [employee] + :av-pairs'((emplid 11) (groupid 1) + (first_name "Yuri") + (last_name "Gagarin") + (email "gagarin@soviet.org") + (ecompanyid 1) (managerid 1))) + (values + (clsql:select [first-name] [last-name] [email] :from [employee] + :where [= [emplid] 11]) + (progn (clsql:delete-records :from [employee] :where [= [emplid] 11]) + (clsql:select [first-name] [last-name] [email] :from [employee] + :where [= [emplid] 11])))) + (("Yuri" "Gagarin" "gagarin@soviet.org")) nil) + +;; inserts a records using a query from another table +(deftest :fdml/insert/4 + (progn + (clsql:create-table [employee2] '(([forename] string) + ([surname] string) + ([email] string))) + (clsql:insert-records :into [employee2] + :query [select [first-name] [last-name] [email] + :from [employee]] + :attributes '(forename surname email)) + (prog1 + (equal (clsql:select [*] :from [employee2]) + (clsql:select [first-name] [last-name] [email] + :from [employee])) + (clsql:drop-table [employee2] :if-does-not-exist :ignore))) + t) + +;; updates a record using attributes and values and then deletes it +(deftest :fdml/update/1 + (progn + (clsql:update-records [employee] + :attributes '(first_name last_name email) + :values '("Yuri" "Gagarin" "gagarin@soviet.org") + :where [= [emplid] 1]) + (values + (clsql:select [first-name] [last-name] [email] :from [employee] + :where [= [emplid] 1]) + (progn + (clsql:update-records [employee] + :av-pairs'((first_name "Vladimir") + (last_name "Lenin") + (email "lenin@soviet.org")) + :where [= [emplid] 1]) + (clsql:select [first-name] [last-name] [email] :from [employee] + :where [= [emplid] 1])))) + (("Yuri" "Gagarin" "gagarin@soviet.org")) + (("Vladimir" "Lenin" "lenin@soviet.org"))) + +;; updates a record using av-pairs and then deletes it +(deftest :fdml/update/2 + (progn + (clsql:update-records [employee] + :av-pairs'((first_name "Yuri") + (last_name "Gagarin") + (email "gagarin@soviet.org")) + :where [= [emplid] 1]) + (values + (clsql:select [first-name] [last-name] [email] :from [employee] + :where [= [emplid] 1]) + (progn + (clsql:update-records [employee] + :av-pairs'((first_name "Vladimir") + (last_name "Lenin") + (email "lenin@soviet.org")) + :where [= [emplid] 1]) + (clsql:select [first-name] [last-name] [email] + :from [employee] :where [= [emplid] 1])))) + (("Yuri" "Gagarin" "gagarin@soviet.org")) + (("Vladimir" "Lenin" "lenin@soviet.org"))) + + + ;; starts a transaction deletes a record and then rolls back the deletion (deftest :fdml/transaction/1 (let ((results '())) -- 2.34.1