Add tests of lack-util.

This commit is contained in:
Eitaro Fukamachi 2015-03-22 22:13:09 +09:00
parent d4ef9abc2e
commit 127aa16e32
3 changed files with 61 additions and 1 deletions

View file

@ -9,4 +9,5 @@
:license "LLGPL"
:depends-on (:ironclad
:alexandria)
:components ((:file "src/util")))
:components ((:file "src/util"))
:in-order-to ((test-op (test-op t-lack-util))))

17
t-lack-util.asd Normal file
View file

@ -0,0 +1,17 @@
(in-package :cl-user)
(defpackage t-lack-util-asd
(:use :cl :asdf))
(in-package :t-lack-util-asd)
(defsystem t-lack-util
:author "Eitaro Fukamachi"
:license "LLGPL"
:depends-on (:lack-test
:lack-util
:prove)
:components
((:test-file "t/util"))
:defsystem-depends-on (:prove-asdf)
:perform (test-op :after (op c)
(funcall (intern #.(string :run-test-system) :prove) c)))

42
t/util.lisp Normal file
View file

@ -0,0 +1,42 @@
(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)