Added tests for symbols valued slots, and better printer/reader bindings
[clsql.git] / tests / test-oodml.lisp
index 953a604a9adc693a657e2185c66ccab3ce37ecef..042fd48b6d71bb39cf8cb720ad60ae159dc76d85 100644 (file)
 (setq *rt-oodml*
       '(
 
+(deftest :oodml/read-symbol-value/1-into-this-package
+ (clsql-sys::read-sql-value
+  (clsql-sys::database-output-sql-as-type 'symbol 'clsql-tests::foo nil nil)
+  'symbol nil nil)
+ clsql-tests::foo)
+
+(deftest :oodml/read-symbol-value/2-into-another-pacakge
+ (clsql-sys::read-sql-value
+  (clsql-sys::database-output-sql-as-type 'symbol 'clsql-sys::foo nil nil)
+  'symbol nil nil)
+ clsql-sys::foo)
+
+(deftest :oodml/read-symbol-value/3-keyword
+ (clsql-sys::read-sql-value
+  (clsql-sys::database-output-sql-as-type 'keyword ':foo nil nil)
+  'keyword nil nil)
+ :foo)
+
+(deftest :oodml/read-symbol-value/4-keyword-error
+ (handler-case
+     (clsql-sys::read-sql-value
+      (clsql-sys::database-output-sql-as-type 'keyword 'foo nil nil)
+      'keyword nil nil)
+   (clsql-sys::sql-value-conversion-error (c) (declare (ignore c))
+     :error))
+ :error)
+
 (deftest :oodml/select/1
     (with-dataset *ds-employees*
       (mapcar #'(lambda (e) (slot-value e 'last-name))
              (select 'deferred-employee-address :flatp t :order-by [aaddressid] :caching nil)))
   (10 10 nil nil nil nil))
 
+(deftest :oodm/retrieval/10-slot-columns
+ (with-dataset *ds-employees*
+   (mapcar #'title
+           (select 'employee :flatp t :caching nil
+                   :where [<= [emplid] 3]
+                   :order-by `((,[emplid]  :asc)))))
+ (supplicant :adherent cl-user::novice))
+
 ;; tests update-records-from-instance
 (deftest :oodml/update-records/1
     (with-dataset *ds-employees*