X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Ftest-oodml.lisp;h=d6cd8fe9f7cbf6d94fc563fc252219efb467b9ae;hb=a91ef336e5401ba5acbe0cf66447eeae7d4cad50;hp=797c84f1fb291be82bb3c951f90e024038e9e1a6;hpb=68290f0275c3193cd0413fb247a1395486747338;p=clsql.git diff --git a/tests/test-oodml.lisp b/tests/test-oodml.lisp index 797c84f..d6cd8fe 100644 --- a/tests/test-oodml.lisp +++ b/tests/test-oodml.lisp @@ -54,11 +54,33 @@ :order-by [last-name])) ("Vladamir Lenin" "Vladamir Putin")) -;; sqlite fails this because it is typeless (deftest :oodml/select/5 (length (clsql:select 'employee :where [married] :flatp t)) 3) +(deftest :oodml/select/6 + (let ((a (caar (clsql:select 'address :where [= 1 [emplid]])))) + (values + (slot-value a 'street-number) + (slot-value a 'street-name) + (slot-value a 'city) + (slot-value a 'postal-code))) + 10 "Park Place" "Leningrad" 123) + +(deftest :oodml/select/7 + (let ((a (caar (clsql:select 'address :where [= 2 [emplid]])))) + (values + (slot-value a 'street-number) + (slot-value a 'street-name) + (slot-value a 'city) + (slot-value a 'postal-code))) + nil "" "no city" 0) + +(deftest :oodml/select/8 + (mapcar #'(lambda (e) (slot-value e 'married)) + (clsql:select 'employee :flatp t :order-by [emplid])) + (t t t nil nil nil nil nil nil nil)) + ;; tests update-records-from-instance (deftest :oodml/update-records/1 (values @@ -235,22 +257,41 @@ "lenin@soviet.org" "lenin-nospam@soviet.org" "lenin@soviet.org") -;(deftest :oodml/iteration/1 -; (clsql:do-query ((e) [select 'clsql-tests::employee :where [married] -; :order-by [emplid]]) -; (slot-value e last-name)) -; ("Lenin" "Stalin" "Trotsky")) +(deftest :oodml/do-query/1 + (let ((result '())) + (clsql:do-query ((e) [select 'employee :order-by [emplid]]) + (push (slot-value e 'last-name) result)) + result) + ("Putin" "Yeltsin" "Gorbachev" "Chernenko" "Andropov" "Brezhnev" "Kruschev" + "Trotsky" "Stalin" "Lenin")) + +(deftest :oodml/do-query/2 + (let ((result '())) + (clsql:do-query ((e c) [select 'employee 'company + :where [= [slot-value 'employee 'last-name] + "Lenin"]]) + (push (list (slot-value e 'last-name) (slot-value c 'name)) + result)) + result) + (("Lenin" "Widgets Inc."))) + +(deftest :oodml/map-query/1 + (clsql:map-query 'list #'last-name [select 'employee :order-by [emplid]]) + ("Lenin" "Stalin" "Trotsky" "Kruschev" "Brezhnev" "Andropov" "Chernenko" + "Gorbachev" "Yeltsin" "Putin")) -;(deftest :oodml/iteration/2 -; (clsql:map-query 'list #'last-name [select 'employee :where [married] -; :order-by [emplid]]) -; ("Lenin" "Stalin" "Trotsky")) +(deftest :oodml/map-query/2 + (clsql:map-query 'list #'(lambda (e c) (list (slot-value e 'last-name) + (slot-value c 'name))) + [select 'employee 'company :where [= [slot-value 'employee 'last-name] + "Lenin"]]) + (("Lenin" "Widgets Inc."))) -;(deftest :oodml/iteration/3 -; (loop for (e) being the tuples in -; [select 'employee :where [married] :order-by [emplid]] -; collect (slot-value e 'last-name)) -; ("Lenin" "Stalin" "Trotsky")) +(deftest :oodml/iteration/3 + (loop for (e) being the records in + [select 'employee :where [married] :order-by [emplid]] + collect (slot-value e 'last-name)) + ("Lenin" "Stalin" "Trotsky")) ))