X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=tests%2Ftest-oodml.lisp;h=e1bb530c079b87d76930f44f4d0a59a7ca59af9a;hp=4898067161a9b387a840a8fb21f1a30bb75bad8a;hb=d9937e92697e07d701defd1fdcee7100d005fdf6;hpb=645d2ea7396466b8673e3421b55e45cd327f0195 diff --git a/tests/test-oodml.lisp b/tests/test-oodml.lisp index 4898067..e1bb530 100644 --- a/tests/test-oodml.lisp +++ b/tests/test-oodml.lisp @@ -471,6 +471,147 @@ (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))) + (setf (slot-value emp1 'height) height) + (clsql:update-record-from-slot emp1 'height))) + 1.0d0) + + (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))) + (setf (slot-value emp1 'height) height) + (clsql:update-record-from-slot emp1 'height))) + 1.0d0) + + (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))) + (setf (slot-value emp1 'height) height) + (clsql:update-record-from-slot emp1 'height))) + 1.0d0) + + (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))) + (setf (slot-value emp1 'height) height) + (clsql:update-record-from-slot emp1 'height))) + 1.0d0) + + (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))) + (setf (slot-value emp1 'height) height) + (clsql:update-record-from-slot emp1 'height))) + 1.0d0) + )) + + + #.(clsql:restore-sql-reader-syntax-state)