]> code.delx.au - gnu-emacs/blobdiff - test/automated/eieio-test-methodinvoke.el
Shrink EIEIO object header. Move generics to eieio-generic.el.
[gnu-emacs] / test / automated / eieio-test-methodinvoke.el
index f2fe37836f3d4cb315dc1e8419ed7146458a4088..2de836ceda5d6303b555208468107245cb0792a6 100644 (file)
 (defun eieio-test-method-store ()
   "Store current invocation class symbol in the invocation order list."
   (let* ((keysym (aref [ :STATIC :BEFORE :PRIMARY :AFTER ]
-                      (or eieio-generic-call-key 0)))
-        (c (list eieio-generic-call-methodname keysym (eieio--scoped-class))))
-    (setq eieio-test-method-order-list
-         (cons c eieio-test-method-order-list))))
+                      (or eieio--generic-call-key 0)))
+         ;; FIXME: Don't depend on `eieio--scoped-class'!
+        (c (list keysym (eieio--class-symbol (eieio--scoped-class)))))
+    (push c eieio-test-method-order-list)))
 
 (defun eieio-test-match (rightanswer)
   "Do a test match."
   (if (equal rightanswer eieio-test-method-order-list)
       t
-    (error "eieio-test-methodinvoke.el: Test Failed!")))
+    (error "eieio-test-methodinvoke.el: Test Failed: %S != %S"
+           rightanswer eieio-test-method-order-list)))
 
 (defvar eieio-test-call-next-method-arguments nil
   "List of passed to methods during execution of `call-next-method'.")
 (ert-deftest eieio-test-method-order-list-3 ()
   (let ((eieio-test-method-order-list nil)
        (ans '(
-              (eitest-F :BEFORE eitest-B)
-              (eitest-F :BEFORE eitest-B-base1)
-              (eitest-F :BEFORE eitest-B-base2)
+              (:BEFORE eitest-B)
+              (:BEFORE eitest-B-base1)
+              (:BEFORE eitest-B-base2)
 
-              (eitest-F :PRIMARY eitest-B)
-              (eitest-F :PRIMARY eitest-B-base1)
-              (eitest-F :PRIMARY eitest-B-base2)
+              (:PRIMARY eitest-B)
+              (:PRIMARY eitest-B-base1)
+              (:PRIMARY eitest-B-base2)
 
-              (eitest-F :AFTER eitest-B-base2)
-              (eitest-F :AFTER eitest-B-base1)
-              (eitest-F :AFTER eitest-B)
+              (:AFTER eitest-B-base2)
+              (:AFTER eitest-B-base1)
+              (:AFTER eitest-B)
               )))
     (eitest-F (eitest-B nil))
     (setq eieio-test-method-order-list (nreverse eieio-test-method-order-list))
 
 (ert-deftest eieio-test-method-order-list-4 ()
   ;; Both of these situations should succeed.
-  (should (eitest-H eitest-A))
+  (should (eitest-H 'eitest-A))
   (should (eitest-H (eitest-A nil))))
 
 ;;; Return value from :PRIMARY
 (defclass C-base2 () ())
 (defclass C (C-base1 C-base2) ())
 
+;; Just use the obsolete name once, to make sure it also works.
 (defmethod constructor :STATIC ((p C-base1) &rest args)
   (eieio-test-method-store)
   (if (next-method-p) (call-next-method))
   )
 
-(defmethod constructor :STATIC ((p C-base2) &rest args)
+(defmethod eieio-constructor :STATIC ((p C-base2) &rest args)
   (eieio-test-method-store)
   (if (next-method-p) (call-next-method))
   )
 
-(defmethod constructor :STATIC ((p C) &rest args)
+(defmethod eieio-constructor :STATIC ((p C) &rest args)
   (eieio-test-method-store)
   (call-next-method)
   )
 (ert-deftest eieio-test-method-order-list-6 ()
   (let ((eieio-test-method-order-list nil)
        (ans '(
-              (constructor :STATIC C)
-              (constructor :STATIC C-base1)
-              (constructor :STATIC C-base2)
+              (:STATIC C)
+              (:STATIC C-base1)
+              (:STATIC C-base2)
               )))
     (C nil)
     (setq eieio-test-method-order-list (nreverse eieio-test-method-order-list))
 (ert-deftest eieio-test-method-order-list-7 ()
   (let ((eieio-test-method-order-list nil)
        (ans '(
-              (eitest-F :PRIMARY D)
-              (eitest-F :PRIMARY D-base1)
-              ;; (eitest-F :PRIMARY D-base2)
-              (eitest-F :PRIMARY D-base0)
+              (:PRIMARY D)
+              (:PRIMARY D-base1)
+              ;; (:PRIMARY D-base2)
+              (:PRIMARY D-base0)
               )))
     (eitest-F (D nil))
     (setq eieio-test-method-order-list (nreverse eieio-test-method-order-list))
 (ert-deftest eieio-test-method-order-list-8 ()
   (let ((eieio-test-method-order-list nil)
        (ans '(
-              (eitest-F :PRIMARY E)
-              (eitest-F :PRIMARY E-base1)
-              (eitest-F :PRIMARY E-base2)
-              (eitest-F :PRIMARY E-base0)
+              (:PRIMARY E)
+              (:PRIMARY E-base1)
+              (:PRIMARY E-base2)
+              (:PRIMARY E-base0)
               )))
     (eitest-F (E nil))
     (setq eieio-test-method-order-list (nreverse eieio-test-method-order-list))