src/JavaInterfaceMethodRefTests.st
author hlopkmar
Mon, 23 May 2011 16:05:45 +0000
branchjk_new_structure
changeset 816 4e3072021201
parent 815 f98e7173ef67
child 877 f5a5b93e1c78
permissions -rw-r--r--
all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
     1
"{ Package: 'stx:libjava' }"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
     2
773
ff7dbe5581a3 cleaned tests class hierarchy, small fixes
hlopkmar
parents: 771
diff changeset
     3
AbstractJavaTestCase subclass:#JavaInterfaceMethodRefTests
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
     4
	instanceVariableNames:''
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
     5
	classVariableNames:''
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
     6
	poolDictionaries:''
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
     7
	category:'Languages-Java-Tests-RuntimeConstantPool'
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
     8
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
     9
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    10
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    11
!JavaInterfaceMethodRefTests methodsFor:'javaInterfaceMethodRef tests'!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    12
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    13
testCorrectInstanceCreation
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    14
    | initString  javaMethodRef |
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    15
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    16
    initString := 'Ljava/lang/Runnable;'.
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    17
    javaMethodRef := self 
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    18
                getInterfaceMethodRefNamed: 'run'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    19
                typed: '()V'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    20
                inClass: initString.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    21
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    22
    self assertTrue: (javaMethodRef valueCache isNil).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    23
    self assertTrue: (javaMethodRef name = 'run').
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    24
    self assertTrue: (javaMethodRef descriptor = '()V').
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    25
    self assertTrue: (javaMethodRef classRef name = 'Ljava/lang/Runnable;').
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    26
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    27
    "Created: / 08-04-2011 / 14:01:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    28
    "Modified: / 23-05-2011 / 17:19:00 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    29
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    30
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    31
testCorrectResolving
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    32
    | initString  javaMethodRef  expectedResult  result |
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    33
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    34
    initString := 'Ljava/lang/Runnable;'.
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    35
    javaMethodRef := self 
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    36
                getInterfaceMethodRefNamed: 'run'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    37
                typed: '()V'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    38
                inClass: initString.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    39
    result := javaMethodRef resolve.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    40
    expectedResult := (Java classForName: 'java.lang.Runnable') 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    41
                methodDictionary at: #'run()V'.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    42
    self assertTrue: (result = expectedResult).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    43
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    44
    "Created: / 08-04-2011 / 14:07:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    45
    "Modified: / 23-05-2011 / 17:18:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    46
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    47
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    48
testInvalidation
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    49
    | javaMethodRef  initString|
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    50
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    51
   initString :='Ljava/lang/Runnable;'.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    52
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    53
    javaMethodRef := javaMethodRef := self 
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    54
                getInterfaceMethodRefNamed: 'run'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    55
                typed: '()V'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    56
                inClass: initString.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    57
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    58
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    59
    self assertTrue: (javaMethodRef isResolved).
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    60
    self assertTrue: (javaMethodRef classRef isResolved).
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    61
    javaMethodRef invalidate.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    62
    self assertTrue: (javaMethodRef isResolved not).
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    63
    self assertTrue: (javaMethodRef classRef isResolved not).
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    64
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    65
    "Created: / 08-04-2011 / 14:09:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    66
    "Modified: / 23-05-2011 / 17:19:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    67
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    68
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    69
testInvalidationForClassNegative
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    70
    | javaMethodRef  initString|
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    71
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    72
    initString :='Ljava/lang/Runnable;'.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    73
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    74
    javaMethodRef := javaMethodRef := self 
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    75
                getInterfaceMethodRefNamed: 'run'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    76
                typed: '()V'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    77
                inClass: initString.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    78
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    79
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    80
    self assertTrue: (javaMethodRef isResolved).
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    81
    self assertTrue: (javaMethodRef classRef isResolved).
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    82
    javaMethodRef invalidateForClass: 'Ljava/lang/Object;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    83
    self assertTrue: (javaMethodRef isResolved).
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    84
    self assertTrue: (javaMethodRef classRef isResolved).
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    85
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    86
    "Created: / 08-04-2011 / 16:23:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    87
    "Modified: / 23-05-2011 / 17:20:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    88
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    89
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    90
testInvalidationForClassPositive
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    91
    | javaMethodRef  initString|
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    92
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    93
    initString :='Ljava/lang/Runnable;'.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    94
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    95
    javaMethodRef := javaMethodRef := self 
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    96
                getInterfaceMethodRefNamed: 'run'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    97
                typed: '()V'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
    98
                inClass: initString.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    99
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   100
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   101
    self assertTrue: (javaMethodRef isResolved).
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   102
    self assertTrue: (javaMethodRef classRef isResolved).
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   103
    javaMethodRef invalidateForClass: 'Ljava/lang/Runnable;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   104
    self assertTrue: (javaMethodRef isResolved not).
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   105
    self assertTrue: (javaMethodRef classRef isResolved not).
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   106
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   107
    "Created: / 08-04-2011 / 16:23:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   108
    "Modified: / 23-05-2011 / 17:20:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   109
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   110
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   111
testResolving
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   112
    | javaMethodRef  initString|
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   113
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   114
     initString :='Ljava/lang/Runnable;'.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   115
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   116
    javaMethodRef := javaMethodRef := self 
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   117
                getInterfaceMethodRefNamed: 'run'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   118
                typed: '()V'
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   119
                inClass: initString.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   120
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   121
    javaMethodRef resolve.
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   122
    self assertTrue: (javaMethodRef classRef isResolved).
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   123
    self assertTrue: (javaMethodRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   124
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   125
    "Created: / 08-04-2011 / 14:04:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
815
f98e7173ef67 refactored methodRef tests.. interfaceMethodRefs to come
hlopkmar
parents: 773
diff changeset
   126
    "Modified: / 23-05-2011 / 17:21:10 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   127
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   128
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   129
!JavaInterfaceMethodRefTests methodsFor:'permission tests'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   130
816
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   131
testAccessingPublicFromSubclass
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   132
    | javaMethodRef  initString |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   133
816
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   134
    initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   135
    self 
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   136
        should: 
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   137
            [ javaMethodRef := self 
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   138
                        getInterfaceMethodRefNamed: 'publicMethod'
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   139
                        typed: '()Ljava/lang/String;'
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   140
                        inClass: initString.
771
fb8026dda011 Merged with /trunk
vranyj1
parents: 764
diff changeset
   141
            javaMethodRef resolve. ]
816
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   142
        raise: Error
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   143
        suchThat: [:e | e messageText = 'IncompatibleClassChangeError' ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   144
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   145
    "Created: / 13-04-2011 / 14:49:11 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
816
4e3072021201 all tests fixed.. updated interfaceMethodRef to checkPermissions (which were not checked until now ehm)
hlopkmar
parents: 815
diff changeset
   146
    "Modified: / 23-05-2011 / 17:54:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   147
! !
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   148
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   149
!JavaInterfaceMethodRefTests class methodsFor:'documentation'!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   150
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   151
version_SVN
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   152
    ^ '$Id$'
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   153
! !