Current state.
[cl-mock.git] / tests / methods.lisp
1 ;;; -*- mode: lisp; syntax: common-lisp; coding: utf-8-unix; package: cl-mock-tests; -*-
2
3 (in-package #:cl-mock-tests)
4 \f
5 (in-suite cl-mock)
6
7 (defclass foo ()
8   ())
9
10 (defgeneric baz (foo)
11   (:method ((foo foo))
12     42))
13
14 (def-test gf.simple ()
15   (progm
16       '((baz NIL (list)))
17       '((lambda (list) list))
18     (is (equal '(1 2 3) (baz '(1 2 3))))
19     (signals error (eq T (baz T)))
20     (is (eql 42 (baz (make-instance 'foo))))))
21
22 (def-test gf.overwrite ()
23   (progm
24       '((baz NIL (foo)))
25       '((lambda (foo) 23))
26     (is (eql 23 (baz (make-instance 'foo)))))
27   (is (eql 42 (baz (make-instance 'foo)))))