;;;; Author: Kevin Rosenberg
;;;;
;;;; Put in public domain by Kevin Rosenberg
-;;;; $Id: tests.lisp,v 1.1 2003/08/04 06:00:01 kevin Exp $
+;;;; $Id: tests.lisp,v 1.2 2003/08/04 09:46:44 kevin Exp $
;;;; *************************************************************************
(defpackage #:xltest-tests
(in-package #:xltest-tests)
-(defclass xltests (test-fixture)
- ()
- )
+(defclass was-run (test-fixture)
+ ((log :accessor ws-log)))
+
+
+(defmethod setup ((self was-run))
+ (setf (ws-log self) "setup "))
+
+(defmethod teardown ((self was-run))
+ (setf (ws-log self) (concatenate 'string (ws-log self) "teardown ")))
+
+(defmethod test-method ((self was-run))
+ (setf (ws-log self) (concatenate 'string (ws-log self) "test-method ")))
+
+(defmethod test-broken-method ((self was-run))
+ (assert-equal pi (/ 22 7)))
+
+(defmethod test-error-method ((self was-run))
+ (error "Err"))
+
+(defclass test-case-test (test-fixture)
+ ((result :accessor result)))
+
+(defmethod setup ((self test-case-test))
+ (setf (result self) (make-instance 'test-result)))
+
+(defmethod test-template-method ((self test-case-test))
+ (let ((test (make-test 'was-run 'test-method)))
+ (run-test test (result self))
+ (assert-equal (ws-log test) "setup test-method teardown ")))
+
+(defmethod test-result ((self test-case-test))
+ (let ((test (make-test 'was-run 'test-method)))
+ (run-test test (result self))
+ (assert-equal "1 run, 0 errored, 0 failed" (summary (result self)))))
+
+(defmethod test-thunk ((self test-case-test))
+ (let ((test (make-test 'was-run '"Test Failure"
+ :test-thunk
+ (lambda (test)
+ (declare (ignore test))
+ (assert-equal 10 10)))))
+ (run-test test (result self))
+ (assert-equal "1 run, 0 errored, 0 failed"
+ (summary (result self)))))
+
+(defmethod test-failed-result ((self test-case-test))
+ (let ((test (make-test 'was-run 'test-broken-method)))
+ (run-test test (result self))
+ (assert-equal "1 run, 0 errored, 1 failed"
+ (summary (result self)))))
+
+(defmethod test-error-result ((self test-case-test))
+ (let ((test (make-test 'was-run 'test-error-method)))
+ (run-test test (result self))
+ (assert-equal "1 run, 1 errored, 0 failed"
+ (summary (result self)))))
+
+(defmethod test-suite ((self test-case-test))
+ (let ((suite (make-test-suite "TestSuite")))
+ (add-test (make-test 'was-run 'test-method) suite)
+ (add-test (make-test 'was-run 'test-broken-method) suite)
+ (run-test suite (result self)))
+ (assert-equal "2 run, 0 errored, 1 failed"
+ (summary (result self))))
+
+(defmethod test-dynamic-suite ((self test-case-test))
+ (let ((suite (make-test-suite 'was-run)))
+ (run-test suite (result self)))
+ (assert-equal "3 run, 1 errored, 1 failed"
+ (summary (result self))))
+
+(text-testrunner (make-test-suite 'test-case-test))
-(defmethod xltes