(use test ssql-record) (define-ssql-record doc (num date) type author access_type) (test-group "Record creation" (test "alist->" `((num . 1) (date . "5/11/2016") (type . 2) (author . "Bob") (access_type . NULL)) (doc->alist (alist->doc '((num . 1) (date . "5/11/2016") (type . 2) (author . "Bob"))))) (test "list->" `((num . 1) (date . "5/11/2016") (type . 2) (author . "Bob") (access_type . NULL)) (doc->alist (list->doc '(1 "5/11/2016" 2 "Bob")))) (test "Keywords parameters" `((num . 1) (date . "5/11/2016") (type . 2) (author . "Bob") (access_type . NULL)) (doc->alist (make-doc num: 1 date: "5/11/2016" type: 2 author: "Bob")))) (test-group "Record accessors" (define d (alist->doc '((num . 1) (date . "5/11/2016") (type . 2) (author . "Bob")))) (test "->alist" `((num . 1) (date . "5/11/2016") (type . 2) (author . "Bob") (access_type . NULL)) (doc->alist d)) (test "-" 1 (doc-num d)) (test "-fields" '(num date type author access_type) (doc-fields)) (test "-select" '(select (columns num date) (from doc) (where (= id 3))) (doc-select '(columns num date) '((where (= id 3))))) (test "-rec-select" '(select (columns num date type author access_type) (from doc) (where (= num 1) (= date "5/11/2016"))) (doc-rec-select d)) (test "-select-all" '(select (columns num date type author access_type) (from doc)) (doc-select-all)) (test "-update" '(update (table doc) (set (type 3) (author "Bob")) (where (= id 4))) (doc-update '((set (type 3) (author "Bob")) (where (= id 4))))) (test "-rec-update" `(update (table doc) (set (type 2) (author "Bob") (access_type NULL)) (where (= num 1) (= date "5/11/2016"))) (doc-rec-update d)) (test "-insert" '(insert (into doc) (values #(3 "11/5/2016" 8 9 "Boo" NULL))) (doc-insert '((values #(3 "11/5/2016" 8 9 "Boo" NULL))))) (test "-rec-insert" `(insert (into doc) (columns num date type author access_type) (values #(1 "5/11/2016" 2 "Bob" NULL))) (doc-rec-insert d)) (test "-delete" '(delete (from doc) (where (= id 3))) (doc-delete '((where (= id 3))))) (test "-rec-delete" '(delete (from doc) (where (= num 1) (= date "5/11/2016"))) (doc-rec-delete d))) (test-exit)