lack/t/util.lisp
2015-03-22 22:13:21 +09:00

42 lines
1.3 KiB
Common Lisp

(in-package :cl-user)
(defpackage t.lack.util
(:use :cl
:prove
:lack.util
:lack.test))
(in-package :t.lack.util)
(plan 2)
(subtest "find-package-or-load"
(is (find-package-or-load "LACK")
(find-package :lack))
(is (find-package-or-load "hoge") nil))
(subtest "funcall-with-cb"
(let ((cb (lambda (res)
(rplacd (car (last res)) (list "(ok from cb)"))
res)))
;; cons
(let ((app (lambda (env)
(declare (ignore env))
'(200 (:content-type "text/plain") ("ok")))))
(is (funcall-with-cb app (generate-env "/") cb)
'(200 (:content-type "text/plain") ("ok" "(ok from cb)"))))
;; function
(let* ((app (lambda (env)
(declare (ignore env))
(lambda (responder)
(funcall responder '(200 (:content-type "text/plain") ("ok"))))))
(cb-res (funcall-with-cb app (generate-env "/") cb)))
(is-type cb-res 'function)
(let (res)
(funcall cb-res (lambda (r) (setf res r)))
(is res '(200 (:content-type "text/plain") ("ok" "(ok from cb)")))))
;; otherwise
(let ((app (lambda (env)
(declare (ignore env))
1)))
(is (funcall-with-cb app (generate-env "/") cb) 1))))
(finalize)