src/JavaMethodRefTests.st
author vranyj1
Sun, 01 May 2011 12:52:23 +0000
branchjk_new_structure
changeset 761 43e017ec7958
parent 758 be8e84381ce0
child 764 3c1d3f2d29a5
permissions -rw-r--r--
Merged with /branches/jk
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
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
     3
JavaRuntimeConstantPoolTests subclass:#JavaMethodRefTests
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
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    11
!JavaMethodRefTests methodsFor:'permission tests'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    12
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    13
testAccessingPPFromOutside
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    14
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    15
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    16
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    17
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    18
    [ initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    19
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    20
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    21
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    22
                namedAndTyped: (JavaNameAndType2 name: 'packagePrivateMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    23
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    24
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    25
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    26
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    27
    self assertTrue: (throwedException notNil 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    28
                and: [ throwedException messageText = 'IllegalAccessError' ]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    29
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    30
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    31
    "Created: / 14-04-2011 / 15:10:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    32
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    33
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    34
testAccessingPPFromSubclass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    35
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    36
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    37
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    38
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    39
    [ initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    40
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    41
    javaClassRef 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    42
        owner: (Java classForName: 'stx.libjava.tests.mocks.SubclassOfPublicClass').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    43
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    44
                namedAndTyped: (JavaNameAndType2 name: 'packagePrivateMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    45
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    46
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    47
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    48
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    49
    self assertTrue: (throwedException isNil).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    50
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    51
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    52
    "Created: / 14-04-2011 / 15:10:55 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    53
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    54
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    55
testAccessingPrivateFromOutside
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    56
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    57
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    58
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    59
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    60
    [ initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    61
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    62
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    63
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    64
                namedAndTyped: (JavaNameAndType2 name: 'privateMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    65
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    66
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    67
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    68
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    69
    self assertTrue: (throwedException notNil 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    70
                and: [ throwedException messageText = 'IllegalAccessError'  ]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    71
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    72
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    73
    "Created: / 13-04-2011 / 14:44:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    74
    "Modified: / 13-04-2011 / 23:09:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    75
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    76
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    77
testAccessingPrivateFromOutsideInNonPublic
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    78
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    79
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    80
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    81
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    82
    [ initString := 'Lstx/libjava/tests/mocks/NonPublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    83
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    84
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    85
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    86
                namedAndTyped: (JavaNameAndType2 name: 'privateMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    87
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    88
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    89
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    90
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    91
    self assertTrue: (throwedException notNil 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    92
                and: [ throwedException messageText = 'IllegalAccessError' ]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    93
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    94
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    95
    "Created: / 13-04-2011 / 14:47:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    96
    "Modified: / 14-04-2011 / 14:11:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    97
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    98
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
    99
testAccessingPrivateFromSubclass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   100
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   101
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   102
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   103
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   104
    [ initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   105
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   106
    javaClassRef owner: (Java classForName: 'java.lang.SubclassOfPublicClass').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   107
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   108
                namedAndTyped: (JavaNameAndType2 name: 'privateMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   109
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   110
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   111
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   112
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   113
   self assertTrue: (throwedException notNil 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   114
                   and: [ throwedException messageText = 'IllegalAccessError' ]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   115
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   116
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   117
    "Created: / 13-04-2011 / 14:49:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   118
    "Modified: / 14-04-2011 / 00:03:40 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   119
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   120
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   121
testAccessingProtectedFromOutside
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   122
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   123
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   124
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   125
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   126
    [ initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   127
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   128
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   129
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   130
                namedAndTyped: (JavaNameAndType2 name: 'protectedMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   131
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   132
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   133
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   134
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   135
    self assertTrue: (throwedException notNil 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   136
                and: [ throwedException messageText = 'IllegalAccessError' ]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   137
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   138
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   139
    "Created: / 13-04-2011 / 14:44:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   140
    "Modified: / 14-04-2011 / 14:12:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   141
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   142
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   143
testAccessingProtectedFromOutsideInNonPublic
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   144
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   145
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   146
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   147
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   148
    [ initString := 'Lstx/libjava/tests/mocks/NonPublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   149
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   150
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   151
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   152
                namedAndTyped: (JavaNameAndType2 name: 'protectedMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   153
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   154
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   155
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   156
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   157
    self assertTrue: (throwedException notNil 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   158
                and: [ throwedException messageText = 'IllegalAccessError' ]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   159
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   160
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   161
    "Created: / 13-04-2011 / 14:47:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   162
    "Modified: / 14-04-2011 / 14:11:15 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   163
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   164
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   165
testAccessingProtectedFromPackage
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   166
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   167
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   168
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   169
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   170
    [ initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   171
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   172
    javaClassRef owner: (Java classForName: 'stx.libjava.tests.mocks.Crate').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   173
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   174
                namedAndTyped: (JavaNameAndType2 name: 'protectedMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   175
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   176
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   177
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   178
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   179
    self assertTrue: (throwedException isNil ).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   180
                
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   181
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   182
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   183
    "Created: / 14-04-2011 / 15:09:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   184
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   185
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   186
testAccessingProtectedFromSubclass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   187
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   188
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   189
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   190
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   191
    [ initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   192
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   193
    javaClassRef owner: (Java classForName: 'stx.libjava.tests.mocks.SubclassOfPublicClass').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   194
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   195
                namedAndTyped: (JavaNameAndType2 name: 'protectedMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   196
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   197
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   198
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   199
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   200
    self assertTrue: (throwedException isNil).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   201
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   202
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   203
    "Created: / 13-04-2011 / 14:49:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   204
    "Modified: / 13-04-2011 / 23:18:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   205
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   206
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   207
testAccessingPublic
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   208
    | javaClassRef javaMethodRef initString |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   209
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   210
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   211
    self shouldnt: 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   212
            [ initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   213
            javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   214
            javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   215
            javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   216
                namedAndTyped: (JavaNameAndType2 name: 'publicMethod' descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   217
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   218
            javaMethodRef resolve.]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   219
        raise: Error.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   220
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   221
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   222
    "Created: / 13-04-2011 / 14:44:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   223
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   224
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   225
testAccessingPublicFromOutside
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   226
    | javaClassRef  javaMethodRef  initString |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   227
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   228
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   229
    self shouldnt: 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   230
            [ initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   231
            javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   232
            javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   233
            javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   234
                        namedAndTyped: (JavaNameAndType2 name: 'publicMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   235
                                descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   236
                        inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   237
            javaMethodRef resolve. ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   238
        raise: Error.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   239
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   240
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   241
    "Created: / 13-04-2011 / 14:44:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   242
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   243
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   244
testAccessingPublicFromOutsideInNonPublic
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   245
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   246
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   247
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   248
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   249
    [ initString := 'Lstx/libjava/tests/mocks/NonPublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   250
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   251
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   252
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   253
                namedAndTyped: (JavaNameAndType2 name: 'publicMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   254
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   255
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   256
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   257
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   258
    self assertTrue: (throwedException notNil and:[throwedException messageText = 'IllegalAccessError']).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   259
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   260
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   261
    "Created: / 13-04-2011 / 14:48:05 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   262
    "Modified: / 13-04-2011 / 23:04:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   263
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   264
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   265
testAccessingPublicFromSubclass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   266
    | javaClassRef  javaMethodRef  initString  throwedException |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   267
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   268
    self enableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   269
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   270
    [ initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   271
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   272
    javaClassRef owner: (Java classForName: 'java.lang.SubclassOfPublicClass').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   273
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   274
                namedAndTyped: (JavaNameAndType2 name: 'publicMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   275
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   276
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   277
    javaMethodRef resolve. ] on: Error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   278
            do: [:e | throwedException := e ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   279
    self assertTrue: (throwedException isNil                ).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   280
    self disableMockedExceptionThrowing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   281
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   282
    "Created: / 13-04-2011 / 14:49:11 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   283
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   284
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   285
!JavaMethodRefTests methodsFor:'resolving static tests'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   286
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   287
testCorrectStaticResolving
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   288
    | javaClassRef  initString  javaMethodRef  expectedResult  result |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   289
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   290
    initString := 'Lstx/libjava/tests/mocks/PublicClass;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   291
    javaClassRef := JavaClassRef2 for: initString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   292
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   293
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   294
                namedAndTyped: (JavaNameAndType2 name: 'publicStaticMethod'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   295
                        descriptor: '()Ljava/lang/String;')
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   296
                inClassIdentifiedByRef: javaClassRef.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   297
    result := javaMethodRef resolveStatic.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   298
    expectedResult := (Java 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   299
                classForName: 'stx.libjava.tests.mocks.PublicClass') methodDictionary 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   300
                at: #'publicStaticMethod()Ljava/lang/String;'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   301
    self assertTrue: (result = expectedResult).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   302
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   303
    "Created: / 28-04-2011 / 22:46:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   304
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   305
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   306
!JavaMethodRefTests methodsFor:'resolving tests'!
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   307
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   308
testCorrectInstanceCreation
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   309
    | javaClassRef  initString  javaMethodRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   310
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   311
    initString := 'Ljava/lang/String;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   312
    javaClassRef := JavaClassRef2 for: initString.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   313
    javaMethodRef := JavaMethodRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   314
                namedAndTyped: (JavaNameAndType2 name: '<init>' descriptor: '()V')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   315
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   316
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   317
    self assertTrue: (javaMethodRef valueCache isNil).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   318
    self assertTrue: (javaMethodRef name = '<init>').
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   319
    self assertTrue: (javaMethodRef descriptor = '()V').
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   320
    self assertTrue: (javaMethodRef classRef name = 'Ljava/lang/String;').
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   321
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   322
    "Created: / 08-04-2011 / 14:01:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   323
    "Modified: / 08-04-2011 / 16:25:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   324
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   325
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   326
testCorrectResolving
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   327
    | javaClassRef  initString  javaMethodRef  expectedResult  result |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   328
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   329
    initString := 'Ljava/lang/String;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   330
    javaClassRef := JavaClassRef2 for: initString.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   331
    javaClassRef owner: (Java classForName: 'java.lang.Object').
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   332
    javaMethodRef := JavaMethodRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   333
                namedAndTyped: (JavaNameAndType2 name: '<init>' descriptor: '()V')
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   334
                inClassIdentifiedByRef: javaClassRef.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   335
    result := javaMethodRef resolve.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   336
    expectedResult := (Java classForName: 'java.lang.String') methodDictionary 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   337
                at: #'<init>()V'.
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   338
    self assertTrue: (result = expectedResult).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   339
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   340
    "Created: / 08-04-2011 / 14:07:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   341
    "Modified: / 11-04-2011 / 20:34:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   342
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   343
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   344
testInvalidation
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   345
    | javaClassRef  javaMethodRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   346
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   347
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/String;'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   348
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   349
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   350
                namedAndTyped: (JavaNameAndType2 name: '<init>' descriptor: '()V')
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   351
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   352
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   353
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   354
    self assertTrue: (javaMethodRef isResolved).
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   355
    self assertTrue: (javaMethodRef classRef isResolved).
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   356
    javaMethodRef invalidate.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   357
    self assertTrue: (javaMethodRef isResolved not).
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   358
    self assertTrue: (javaMethodRef classRef isResolved not).
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   359
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   360
    "Created: / 08-04-2011 / 14:09:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   361
    "Modified: / 13-04-2011 / 12:22:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   362
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   363
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   364
testInvalidationForClassNegative
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   365
    | javaClassRef  javaMethodRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   366
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   367
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/String;'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   368
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   369
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   370
                namedAndTyped: (JavaNameAndType2 name: '<init>' descriptor: '()V')
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   371
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   372
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   373
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   374
    self assertTrue: (javaMethodRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   375
    javaMethodRef invalidateForClass: 'Ljava/lang/Object;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   376
    self assertTrue: (javaMethodRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   377
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   378
    "Created: / 08-04-2011 / 16:23:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   379
    "Modified: / 11-04-2011 / 20:41:52 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   380
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   381
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   382
testInvalidationForClassPositive
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   383
    | javaClassRef  javaMethodRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   384
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   385
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/String;'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   386
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   387
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   388
                namedAndTyped: (JavaNameAndType2 name: '<init>' descriptor: '()V')
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   389
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   390
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   391
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   392
    self assertTrue: (javaMethodRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   393
    javaMethodRef invalidateForClass: 'Ljava/lang/String;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   394
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   395
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   396
    "Created: / 08-04-2011 / 16:23:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   397
    "Modified: / 11-04-2011 / 20:41:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   398
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   399
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   400
testResolving
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   401
    | javaClassRef  javaMethodRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   402
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   403
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/String;'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   404
    javaClassRef owner: (Java classForName: 'java.lang.Object').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   405
    javaMethodRef := JavaMethodRef2 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   406
                namedAndTyped: (JavaNameAndType2 name: '<init>' descriptor: '()V')
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   407
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   408
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   409
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   410
    self assertTrue: (javaClassRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   411
    self assertTrue: (javaMethodRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   412
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   413
    "Created: / 08-04-2011 / 14:04:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   414
    "Modified: / 11-04-2011 / 20:41:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   415
! !
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   416
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   417
!JavaMethodRefTests class methodsFor:'documentation'!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   418
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   419
version_SVN
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   420
    ^ '$Id$'
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   421
! !
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 758
diff changeset
   422