source: trunk/abcl/test/lisp/abcl/runtime-class.lisp @ 14721

Last change on this file since 14721 was 14721, checked in by Mark Evenson, 9 years ago

Intermediary JNEW-RUNTIME-CLASS work: start adding failing tests.

Run the failing tests via

CL-USER> (asdf:load-system :abcl) (asdf:test-system :abcl-test-lisp)

c.f. <http://abcl.org/trac/ticket/330> and <http://abcl.org/trac/ticket/346>.

Start editing documentation for JNEW-RUNTIME-CLASS.

Add failing tests for cases that should work, indicating that we have
basic problems with the code at this point.

File size: 1.7 KB
Line 
1(in-package :abcl.test.lisp)
2
3
4;; method with no arguments
5(deftest runtime-class.1
6    (java:jnew-runtime-class 
7     "Actor"
8     :fields `(("name" "java.lang.String"))
9     :methods `(("getName" "java.lang.String" nil
10                           (lambda (this)
11                             (java:jfield this "name")))))
12  t)
13
14;; method with primitive type
15(deftest runtime-class.2
16    (java:jnew-runtime-class 
17     "Actor"
18     :fields `(("name" "java.lang.String"))
19     :methods `(("getName" "java.lang.String" (:int)
20                           (lambda (this) 
21                             (java:jfield this "name")))))
22  t)
23
24;; inheritance of type
25
26(deftest runtime-class.3
27    (progn 
28      (java:jnew-runtime-class 
29       "foo.Actor"
30       :fields `(("name" "java.lang.String")))
31      (java:jnew-runtime-class 
32       "foo.StageActor"
33       :superclass "foo.Actor"
34       :fields (list '("givenName" "java.lang.String"))))
35  t)
36
37
38#|
39// Simple constructor test
40public class Actor {
41  String name;
42 
43  public Actor(String name) {
44    this.name = name;
45  }
46
47  public String getName() {
48    return name;
49  }
50 
51}
52|#
53
54;; constructor
55(deftest runtime-class.4
56    (java:jnew-runtime-class 
57     "Actor"
58     :constructors `(("java.lang.String") 
59                     (lambda (name) 
60                       (setf (jfield this "name")
61                             name)))
62     :methods `(("getName" "java.lang.String" ("java.lang.String")  ;; no-arg methods not working
63                           (lambda (this dummy) 
64                             (declare (ignore dummy))
65                             (java:jfield this "name"))))
66     :fields `(("name" "java.lang.String")))
67  t)
68
69
70   
Note: See TracBrowser for help on using the repository browser.