Re-add generic function stuff, fix symbols.
[cl-mock.git] / tests / methods.lisp
diff --git a/tests/methods.lisp b/tests/methods.lisp
new file mode 100644 (file)
index 0000000..f61be50
--- /dev/null
@@ -0,0 +1,27 @@
+;; -*- mode: lisp; syntax: common-lisp; coding: utf-8-unix; package: cl-mock-tests; -*-
+
+(in-package #:cl-mock-tests)
+\f
+(in-suite cl-mock)
+
+(defclass foo ()
+  ())
+
+(defgeneric baz (foo)
+  (:method ((foo foo))
+    42))
+
+(def-test gf.simple ()
+  (cl-mock::progm
+      '((baz NIL (list)))
+      '((lambda (list) list))
+    (is (equal '(1 2 3) (baz '(1 2 3))))
+    (signals error (eq T (baz T)))
+    (is (eql 42 (baz (make-instance 'foo))))))
+
+(def-test gf.overwrite ()
+  (cl-mock::progm
+      '((baz NIL (foo)))
+      '((lambda (foo) 23))
+    (is (eql 23 (baz (make-instance 'foo)))))
+  (is (eql 42 (baz (make-instance 'foo)))))