1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
6 ;;;; Purpose: Test suite for XLTest
7 ;;;; Author: Kevin Rosenberg
9 ;;;; Put in public domain by Kevin Rosenberg
10 ;;;; $Id: tests.lisp,v 1.2 2003/08/04 09:46:44 kevin Exp $
11 ;;;; *************************************************************************
13 (defpackage #:xltest-tests
16 (in-package #:xltest-tests)
18 (defclass was-run (test-fixture)
19 ((log :accessor ws-log)))
22 (defmethod setup ((self was-run))
23 (setf (ws-log self) "setup "))
25 (defmethod teardown ((self was-run))
26 (setf (ws-log self) (concatenate 'string (ws-log self) "teardown ")))
28 (defmethod test-method ((self was-run))
29 (setf (ws-log self) (concatenate 'string (ws-log self) "test-method ")))
31 (defmethod test-broken-method ((self was-run))
32 (assert-equal pi (/ 22 7)))
34 (defmethod test-error-method ((self was-run))
37 (defclass test-case-test (test-fixture)
38 ((result :accessor result)))
40 (defmethod setup ((self test-case-test))
41 (setf (result self) (make-instance 'test-result)))
43 (defmethod test-template-method ((self test-case-test))
44 (let ((test (make-test 'was-run 'test-method)))
45 (run-test test (result self))
46 (assert-equal (ws-log test) "setup test-method teardown ")))
48 (defmethod test-result ((self test-case-test))
49 (let ((test (make-test 'was-run 'test-method)))
50 (run-test test (result self))
51 (assert-equal "1 run, 0 errored, 0 failed" (summary (result self)))))
53 (defmethod test-thunk ((self test-case-test))
54 (let ((test (make-test 'was-run '"Test Failure"
57 (declare (ignore test))
58 (assert-equal 10 10)))))
59 (run-test test (result self))
60 (assert-equal "1 run, 0 errored, 0 failed"
61 (summary (result self)))))
63 (defmethod test-failed-result ((self test-case-test))
64 (let ((test (make-test 'was-run 'test-broken-method)))
65 (run-test test (result self))
66 (assert-equal "1 run, 0 errored, 1 failed"
67 (summary (result self)))))
69 (defmethod test-error-result ((self test-case-test))
70 (let ((test (make-test 'was-run 'test-error-method)))
71 (run-test test (result self))
72 (assert-equal "1 run, 1 errored, 0 failed"
73 (summary (result self)))))
75 (defmethod test-suite ((self test-case-test))
76 (let ((suite (make-test-suite "TestSuite")))
77 (add-test (make-test 'was-run 'test-method) suite)
78 (add-test (make-test 'was-run 'test-broken-method) suite)
79 (run-test suite (result self)))
80 (assert-equal "2 run, 0 errored, 1 failed"
81 (summary (result self))))
83 (defmethod test-dynamic-suite ((self test-case-test))
84 (let ((suite (make-test-suite 'was-run)))
85 (run-test suite (result self)))
86 (assert-equal "3 run, 1 errored, 1 failed"
87 (summary (result self))))
89 (text-testrunner (make-test-suite 'test-case-test))