X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Ftest-oodml.lisp;h=87d897fb4c743406a441f99687863daff2c68b17;hb=ab37892bfa71e0d66021cc73f28cd189be30c81c;hp=4898067161a9b387a840a8fb21f1a30bb75bad8a;hpb=645d2ea7396466b8673e3421b55e45cd327f0195;p=clsql.git diff --git a/tests/test-oodml.lisp b/tests/test-oodml.lisp index 4898067..87d897f 100644 --- a/tests/test-oodml.lisp +++ b/tests/test-oodml.lisp @@ -50,11 +50,11 @@ " " (slot-value e 'last-name))) (clsql:select 'employee :where [= [slot-value 'employee 'first-name] - "Vladamir"] + "Vladimir"] :flatp t :order-by [last-name] :caching nil)) - ("Vladamir Lenin" "Vladamir Putin")) + ("Vladimir Lenin" "Vladimir Putin")) (deftest :oodml/select/5 (length (clsql:select 'employee :where [married] :flatp t :caching nil)) @@ -194,7 +194,7 @@ ": " (employee-email lenin)))) (progn - (setf (slot-value employee1 'first-name) "Vladamir" + (setf (slot-value employee1 'first-name) "Vladimir" (slot-value employee1 'last-name) "Lenin" (slot-value employee1 'email) "lenin@soviet.org") (clsql:update-records-from-instance employee1) @@ -209,9 +209,9 @@ (last-name lenin) ": " (employee-email lenin))))) - "Vladamir Lenin: lenin@soviet.org" + "Vladimir Lenin: lenin@soviet.org" "Dimitriy Ivanovich: ivanovich@soviet.org" - "Vladamir Lenin: lenin@soviet.org") + "Vladimir Lenin: lenin@soviet.org") ;; tests update-record-from-slot (deftest :oodml/update-records/2 @@ -270,7 +270,7 @@ ": " (employee-email lenin)))) (progn - (setf (slot-value employee1 'first-name) "Vladamir" + (setf (slot-value employee1 'first-name) "Vladimir" (slot-value employee1 'last-name) "Lenin" (slot-value employee1 'email) "lenin@soviet.org") (clsql:update-record-from-slots employee1 '(first-name last-name email)) @@ -285,9 +285,9 @@ (last-name lenin) ": " (employee-email lenin))))) - "Vladamir Lenin: lenin@soviet.org" + "Vladimir Lenin: lenin@soviet.org" "Dimitriy Ivanovich: ivanovich@soviet.org" - "Vladamir Lenin: lenin@soviet.org") + "Vladimir Lenin: lenin@soviet.org") ;; tests update-instance-from-records (deftest :oodml/update-instance/1 @@ -313,7 +313,7 @@ (slot-value employee1 'email))) (progn (clsql:update-records [employee] - :av-pairs '(([first-name] "Vladamir") + :av-pairs '(([first-name] "Vladimir") ([last-name] "Lenin") ([email] "lenin@soviet.org")) :where [= [emplid] 1]) @@ -324,9 +324,9 @@ (slot-value employee1 'last-name) ": " (slot-value employee1 'email)))) - "Vladamir Lenin: lenin@soviet.org" + "Vladimir Lenin: lenin@soviet.org" "Ivan Petrov: petrov@soviet.org" - "Vladamir Lenin: lenin@soviet.org") + "Vladimir Lenin: lenin@soviet.org") ;; tests update-slot-from-record (deftest :oodml/update-instance/2 @@ -454,6 +454,16 @@ (every #'(lambda (dea) (typep (slot-value dea 'address) 'address)) dea-list) (mapcar #'(lambda (dea) (slot-value (slot-value dea 'address) 'addressid)) dea-list)))) t t t t (1 1 2 2 2)) + + ;; update-object-joins needs to be fixed for multiple keys + #+ignore + (deftest :oodml/uoj/2 + (progn + (clsql:update-objects-joins (list company1)) + (mapcar #'(lambda (e) + (slot-value e 'ecompanyid)) + (company-employees company1))) + (1 1 1 1 1 1 1 1 1 1)) (deftest :oodml/big/1 (let ((objs (clsql:select 'big :order-by [i] :flatp t))) @@ -471,6 +481,152 @@ (describe obj) (return nil)))))) 555 t) + + (deftest :oodml/db-auto-sync/1 + (values + (progn + (make-instance 'employee :emplid 20 :groupid 1 + :last-name "Ivanovich") + (select [last-name] :from [employee] :where [= [emplid] 20] + :flatp t :field-names nil)) + (let ((*db-auto-sync* t)) + (make-instance 'employee :emplid 20 :groupid 1 + :last-name "Ivanovich") + (prog1 (select [last-name] :from [employee] :flatp t + :field-names nil + :where [= [emplid] 20]) + (delete-records :from [employee] :where [= [emplid] 20])))) + nil ("Ivanovich")) + + (deftest :oodml/db-auto-sync/2 + (values + (let ((instance (make-instance 'employee :emplid 20 :groupid 1 + :last-name "Ivanovich"))) + (setf (slot-value instance 'last-name) "Bulgakov") + (select [last-name] :from [employee] :where [= [emplid] 20] + :flatp t :field-names nil)) + (let* ((*db-auto-sync* t) + (instance (make-instance 'employee :emplid 20 :groupid 1 + :last-name "Ivanovich"))) + (setf (slot-value instance 'last-name) "Bulgakov") + (prog1 (select [last-name] :from [employee] :flatp t + :field-names nil + :where [= [emplid] 20]) + (delete-records :from [employee] :where [= [emplid] 20])))) + nil ("Bulgakov")) + (deftest :oodml/setf-slot-value/1 + (let* ((*db-auto-sync* t) + (instance (make-instance 'employee :emplid 20 :groupid 1))) + (prog1 + (setf + (slot-value instance 'first-name) "Mikhail" + (slot-value instance 'last-name) "Bulgakov") + (delete-records :from [employee] :where [= [emplid] 20]))) + "Bulgakov") + + (deftest :oodml/float/1 + (let* ((emp1 (car (select 'employee + :where [= [slot-value 'employee 'emplid] + 1] + :flatp t + :caching nil))) + (height (slot-value emp1 'height))) + (prog1 + (progn + (setf (slot-value emp1 'height) 1.0E0) + (clsql:update-record-from-slot emp1 'height) + (= (car (clsql:select [height] :from [employee] + :where [= [emplid] 1] + :flatp t + :field-names nil)) + 1)) + (setf (slot-value emp1 'height) height) + (clsql:update-record-from-slot emp1 'height))) + t) + + (deftest :oodml/float/2 + (let* ((emp1 (car (select 'employee + :where [= [slot-value 'employee 'emplid] + 1] + :flatp t + :caching nil))) + (height (slot-value emp1 'height))) + (prog1 + (progn + (setf (slot-value emp1 'height) 1.0S0) + (clsql:update-record-from-slot emp1 'height) + (= (car (clsql:select [height] :from [employee] + :where [= [emplid] 1] + :flatp t + :field-names nil)) + 1)) + (setf (slot-value emp1 'height) height) + (clsql:update-record-from-slot emp1 'height))) + t) + + (deftest :oodml/float/3 + (let* ((emp1 (car (select 'employee + :where [= [slot-value 'employee 'emplid] + 1] + :flatp t + :caching nil))) + (height (slot-value emp1 'height))) + (prog1 + (progn + (setf (slot-value emp1 'height) 1.0F0) + (clsql:update-record-from-slot emp1 'height) + (= (car (clsql:select [height] :from [employee] + :where [= [emplid] 1] + :flatp t + :field-names nil)) + 1)) + (setf (slot-value emp1 'height) height) + (clsql:update-record-from-slot emp1 'height))) + t) + + (deftest :oodml/float/4 + (let* ((emp1 (car (select 'employee + :where [= [slot-value 'employee 'emplid] + 1] + :flatp t + :caching nil))) + (height (slot-value emp1 'height))) + (prog1 + (progn + (setf (slot-value emp1 'height) 1.0D0) + (clsql:update-record-from-slot emp1 'height) + (= (car (clsql:select [height] :from [employee] + :where [= [emplid] 1] + :flatp t + :field-names nil)) + 1)) + (setf (slot-value emp1 'height) height) + (clsql:update-record-from-slot emp1 'height))) + t) + + (deftest :oodml/float/5 + (let* ((emp1 (car (select 'employee + :where [= [slot-value 'employee 'emplid] + 1] + :flatp t + :caching nil))) + (height (slot-value emp1 'height))) + (prog1 + (progn + (setf (slot-value emp1 'height) 1.0L0) + (clsql:update-record-from-slot emp1 'height) + (= (car (clsql:select [height] :from [employee] + :where [= [emplid] 1] + :flatp t + :field-names nil)) + 1)) + (setf (slot-value emp1 'height) height) + (clsql:update-record-from-slot emp1 'height))) + t) + )) + + + #.(clsql:restore-sql-reader-syntax-state)