src/JavaFieldRefTests.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:#JavaFieldRefTests
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
!JavaFieldRefTests methodsFor:'javaFieldRef 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  javaFieldRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    15
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    16
    initString := 'Ljava/lang/String;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    17
    javaClassRef := JavaClassRef2 for: initString.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    18
    javaFieldRef := JavaFieldRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    19
                namedAndTyped: (JavaNameAndType2 name: 'value' descriptor: '[C')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    20
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    21
    self assertTrue: (javaFieldRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    22
    self assertTrue: (javaFieldRef valueCache isNil).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    23
    self assertTrue: (javaFieldRef name = 'value').
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    24
    self assertTrue: (javaFieldRef descriptor = '[C').
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    25
    self assertTrue: (javaFieldRef classRef name = 'Ljava/lang/String;').
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:22:34 / 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  javaFieldRef  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/String;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    35
    javaClassRef := JavaClassRef2 for: initString.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    36
    javaFieldRef := JavaFieldRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    37
                namedAndTyped: (JavaNameAndType2 name: 'value' descriptor: '[C')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    38
                inClassIdentifiedByRef: javaClassRef.    
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    39
    result := javaFieldRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    40
    expectedResult := (Java classForName: 'java.lang.String') fields at: 1.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    41
    self assertTrue: (result = expectedResult).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    42
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    43
    "Created: / 08-04-2011 / 14:07:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    44
    "Modified: / 08-04-2011 / 16:28:00 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    45
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    46
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    47
testInvalidation
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    48
    | javaClassRef   javaFieldRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    49
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    50
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/String;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    51
    javaFieldRef := JavaFieldRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    52
                namedAndTyped: (JavaNameAndType2 name: 'value' descriptor: '[C')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    53
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    54
    self assertTrue: (javaFieldRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    55
    javaFieldRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    56
    self assertTrue: (javaFieldRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    57
    javaFieldRef invalidate.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    58
    self assertTrue: (javaFieldRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    59
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    60
    "Created: / 08-04-2011 / 14:09:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    61
    "Modified: / 08-04-2011 / 15:15:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    62
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    63
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    64
testInvalidationForClassNegative
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    65
    | javaClassRef  javaFieldRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    66
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    67
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/String;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    68
    javaFieldRef := JavaFieldRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    69
                namedAndTyped: (JavaNameAndType2 name: 'value' descriptor: '[C')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    70
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    71
    self assertTrue: (javaFieldRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    72
    javaFieldRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    73
    self assertTrue: (javaFieldRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    74
    javaFieldRef invalidateForClass: 'Ljava/lang/Object;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    75
    self assertTrue: (javaFieldRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    76
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    77
    "Created: / 08-04-2011 / 16:23:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    78
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    79
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    80
testInvalidationForClassPositive
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    81
    | javaClassRef  javaFieldRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    82
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    83
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/String;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    84
    javaFieldRef := JavaFieldRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    85
                namedAndTyped: (JavaNameAndType2 name: 'value' descriptor: '[C')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    86
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    87
    self assertTrue: (javaFieldRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    88
    javaFieldRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    89
    self assertTrue: (javaFieldRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    90
    javaFieldRef invalidateForClass: 'Ljava/lang/String;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    91
    self assertTrue: (javaFieldRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    92
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    93
    "Created: / 08-04-2011 / 16:23:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    94
!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    95
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    96
testResolving
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    97
    | javaClassRef  javaFieldRef |
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    98
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
    99
    javaClassRef := JavaClassRef2 for: 'Ljava/lang/String;'.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   100
    javaFieldRef := JavaFieldRef2 
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   101
                namedAndTyped: (JavaNameAndType2 name: 'value' descriptor: '[C')
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   102
                inClassIdentifiedByRef: javaClassRef.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   103
    self assertTrue: (javaFieldRef isResolved not).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   104
    javaFieldRef resolve.
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   105
    self assertTrue: (javaClassRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   106
    self assertTrue: (javaFieldRef isResolved).
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   107
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   108
    "Created: / 08-04-2011 / 14:04:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   109
    "Modified: / 08-04-2011 / 15:14:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   110
! !
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   111
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   112
!JavaFieldRefTests class methodsFor:'documentation'!
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   113
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   114
version_SVN
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   115
    ^ '$Id$'
be8e84381ce0 Merged with /branches/jk
vranyj1
parents:
diff changeset
   116
! !