src/JavaInterfaceMethodRefTests.st
author vranyj1
Sat, 09 Apr 2011 11:33:24 +0000
branchjk_new_structure
changeset 758 be8e84381ce0
child 761 43e017ec7958
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:#JavaInterfaceMethodRefTests
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
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    14
    | javaClassRef  initString  javaMethodRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    15
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    16
    initString := 'Ljava/lang/Runnable;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    17
    javaClassRef := JavaClassRef2 for: initString.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    18
    javaMethodRef := JavaMethodRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    19
                namedAndTyped: (JavaNameAndType2 name: 'run' descriptor: '()V')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    20
                inClassIdentifiedByRef: javaClassRef.
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>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    28
    "Modified: / 08-04-2011 / 16:48:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
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
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    32
    | javaClassRef  initString  javaMethodRef  expectedResult  result |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    33
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    34
    initString := 'Ljava/lang/Runnable;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    35
    javaClassRef := JavaClassRef2 for: initString.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    36
    javaMethodRef := JavaMethodRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    37
                namedAndTyped: (JavaNameAndType2 name: 'run' descriptor: '()V')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    38
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    39
    result := javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    40
    expectedResult := (Java classForName: 'java.lang.Runnable') methodDictionary 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    41
                at: #'run()V'.
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>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    45
    "Modified: / 08-04-2011 / 16:48:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
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
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    49
    | javaClassRef  javaMethodRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    50
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    51
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/Runnable;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    52
    javaMethodRef := JavaFieldRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    53
                namedAndTyped: (JavaNameAndType2 name: 'run' descriptor: '()V')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    54
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    55
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    56
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    57
    self assertTrue: (javaMethodRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    58
    self assertTrue: (javaClassRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    59
    javaMethodRef invalidate.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    60
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    61
    self assertTrue: (javaClassRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    62
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    63
    "Created: / 08-04-2011 / 14:09:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    64
    "Modified: / 08-04-2011 / 16:49:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    65
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    66
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    67
testInvalidationForClassNegative
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    68
    | javaClassRef  javaMethodRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    69
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    70
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/Runnable;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    71
    javaMethodRef := JavaFieldRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    72
                namedAndTyped: (JavaNameAndType2 name: 'run' descriptor: '()V')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    73
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    74
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    75
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    76
    self assertTrue: (javaMethodRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    77
    self assertTrue: (javaClassRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    78
    javaMethodRef invalidateForClass: 'Ljava/lang/Object;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    79
    self assertTrue: (javaMethodRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    80
    self assertTrue: (javaClassRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    81
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    82
    "Created: / 08-04-2011 / 16:23:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    83
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    84
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    85
testInvalidationForClassPositive
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    86
    | javaClassRef  javaMethodRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    87
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    88
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/Runnable;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    89
    javaMethodRef := JavaFieldRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    90
                namedAndTyped: (JavaNameAndType2 name: 'run' descriptor: '()V')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    91
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    92
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    93
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    94
    self assertTrue: (javaMethodRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    95
    self assertTrue: (javaClassRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    96
    javaMethodRef invalidateForClass: 'Ljava/lang/Runnable;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    97
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    98
    self assertTrue: (javaClassRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    99
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   100
    "Created: / 08-04-2011 / 16:23:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   101
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   102
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   103
testResolving
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   104
    | javaClassRef  javaMethodRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   105
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   106
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/Runnable;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   107
    javaMethodRef := JavaFieldRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   108
                namedAndTyped: (JavaNameAndType2 name: 'run' descriptor: '()V')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   109
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   110
    self assertTrue: (javaMethodRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   111
    javaMethodRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   112
    self assertTrue: (javaClassRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   113
    self assertTrue: (javaMethodRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   114
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   115
    "Created: / 08-04-2011 / 14:04:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   116
    "Modified: / 08-04-2011 / 16:47:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   117
! !
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   118
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   119
!JavaInterfaceMethodRefTests class methodsFor:'documentation'!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   120
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   121
version_SVN
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   122
    ^ '$Id$'
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   123
! !