core/tests/RGReadOnlyImageBackendTest.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 23 Dec 2020 08:46:20 +0000
changeset 10 1fa4cd506c87
parent 9 d64df1abdf2a
permissions -rw-r--r--
core: use `Timestamp` instead of (Pharo) `DateAndTime`
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
     1
"
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
     2
COPYRIGHT (c) 2020 LabWare
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
     3
"
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
     4
"{ Package: 'stx:goodies/ring/core/tests' }"
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
     5
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
     6
"{ NameSpace: Smalltalk }"
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
     7
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
     8
RGAbstractReadOnlyBackendTest subclass:#RGReadOnlyImageBackendTest
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
     9
	instanceVariableNames:''
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    10
	classVariableNames:''
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    11
	poolDictionaries:''
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    12
	category:'Ring-Tests-Core'
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    13
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    14
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    15
RGReadOnlyImageBackendTest comment:''
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    16
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    17
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    18
!RGReadOnlyImageBackendTest class methodsFor:'documentation'!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    19
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    20
copyright
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    21
"
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    22
COPYRIGHT (c) 2020 LabWare
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    23
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    24
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    25
"
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    26
! !
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    27
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    28
!RGReadOnlyImageBackendTest methodsFor:'accessing'!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    29
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    30
newEnvironment
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    31
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    32
    | env | 
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    33
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    34
    env := RGEnvironment unnamed.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    35
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    36
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    37
    ^ env
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    38
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    39
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    40
testDefaultEnvironmentContent
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    41
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    42
    | env |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    43
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    44
    env := RGEnvironment unnamed.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    45
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    46
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    47
    self testDefaultContentFor: env.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    48
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    49
            
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    50
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    51
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    52
! !
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    53
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    54
!RGReadOnlyImageBackendTest methodsFor:'error handling'!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    55
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    56
testEmptyLayout
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    57
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    58
    | env |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    59
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    60
    env := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    61
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    62
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    63
    self should: [EmptyLayout instance asRingMinimalDefinitionIn: env] raise: Error.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    64
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    65
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    66
testLayouts
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    67
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    68
    | env layout |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    69
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    70
    env := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    71
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    72
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    73
    layout := (ByteString asRingMinimalDefinitionIn: env) layout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    74
    self assert: layout isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    75
    self assert: layout isByteLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    76
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    77
    layout := (WordArray asRingMinimalDefinitionIn: env) layout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    78
    self assert: layout isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    79
    self assert: layout isWordLayout.	
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    80
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    81
    layout := (CompiledMethod asRingMinimalDefinitionIn: env) layout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    82
    self assert: layout isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    83
    self assert: layout isCompiledMethodLayout.	
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    84
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    85
    layout := (CompiledMethod asRingMinimalDefinitionIn: env) layout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    86
    self assert: layout isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    87
    self assert: layout isCompiledMethodLayout.				
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    88
        
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    89
    layout := (SmallInteger asRingMinimalDefinitionIn: env) layout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    90
    self assert: layout isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    91
    self assert: layout isImmediateLayout.				
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    92
        
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    93
    layout := (Ephemeron asRingMinimalDefinitionIn: env) layout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    94
    self assert: layout isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    95
    self assert: layout isEphemeronLayout.				
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    96
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    97
    layout := (Object asRingMinimalDefinitionIn: env) layout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    98
    self assert: layout isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
    99
    self assert: layout isFixedLayout.				
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   100
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   101
    layout := (Array asRingMinimalDefinitionIn: env) layout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   102
    self assert: layout isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   103
    self assert: layout isVariableLayout.				
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   104
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   105
    layout := (WeakArray asRingMinimalDefinitionIn: env) layout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   106
    self assert: layout isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   107
    self assert: layout isWeakLayout.				
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   108
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   109
            
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   110
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   111
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   112
testProtocols
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   113
    | env1 point method method2 protocol protocol2 |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   114
    env1 := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   115
    env1 backend: (RGReadOnlyImageBackend for: env1).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   116
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   117
    point := Point asRingMinimalDefinitionIn: env1.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   118
    self assert: point protocols notEmpty.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   119
    protocol := point protocols detect: [ :each | each = 'accessing' ].
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   120
    self assert: protocol isSymbol.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   121
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   122
    method := Point >> #x asRingMinimalDefinitionIn: env1.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   123
    protocol := method protocol.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   124
    method2 := Point >> #y asRingMinimalDefinitionIn: env1.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   125
    protocol2 := method2 protocol.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   126
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   127
    self assert: protocol identicalTo: protocol2.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   128
    self assert: protocol isSymbol.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   129
    self assert: protocol equals: 'accessing'.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   130
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   131
    self should: [ (Protocol name: 'aProtocol') asRingMinimalDefinitionIn: RGEnvironment new ] raise: Error
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   132
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   133
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   134
testTraitAlias
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   135
    | env traitAlias |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   136
    env := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   137
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   138
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   139
    traitAlias := MOPTestClassD traitComposition transformations first asRingMinimalDefinitionIn: env.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   140
    self assert: traitAlias isTraitAlias.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   141
    self assert: traitAlias subject name equals: #Trait2.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   142
    self assert: traitAlias aliases size equals: 1.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   143
    self assert: traitAlias aliases first key identicalTo: #c3.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   144
    self assert: traitAlias aliases first value identicalTo: #c2
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   145
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   146
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   147
testTraitExclusions
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   148
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   149
    | env traitExclusion |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   150
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   151
    env := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   152
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   153
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   154
    traitExclusion := (MOPTestClassB traitComposition transformations second) asRingMinimalDefinitionIn: env.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   155
    self assert: traitExclusion isTraitExclusion.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   156
    self assert: traitExclusion subject name equals: #Trait2.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   157
    self assert: traitExclusion exclusions size equals: 1.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   158
    self assert: traitExclusion exclusions first equals: #c.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   159
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   160
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   161
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   162
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   163
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   164
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   165
testUnknownSlots
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   166
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   167
    | env slot |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   168
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   169
    env := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   170
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   171
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   172
    slot := (SlotExamplePerson slotNamed: #directedMovies) asRingMinimalDefinitionIn: env.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   173
    self assert: slot isSlot.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   174
    self assert: slot name equals: #directedMovies.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   175
    self assert: slot expression equals: 'ToManyRelationSlot inverse: #director inClass: #SlotExampleMovie'.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   176
    self assert: slot parent isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   177
    self assert: slot parent isFixedLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   178
    self assert: slot parent parent name equals: #SlotExamplePerson.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   179
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   180
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   181
! !
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   182
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   183
!RGReadOnlyImageBackendTest methodsFor:'tests'!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   184
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   185
backendClass
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   186
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   187
    ^ RGReadOnlyImageBackend 
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   188
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   189
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   190
testBehavior
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   191
    | env1 point point2 object method |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   192
    env1 := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   193
    env1 backend: (RGReadOnlyImageBackend for: env1).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   194
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   195
    point := Point asRingMinimalDefinitionIn: env1.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   196
    "different access method"
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   197
    point2 := env1 ask behaviors detect: [ :each | each name == #Point ].
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   198
    object := Object asRingMinimalDefinitionIn: env1.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   199
    method := Point >> #x asRingMinimalDefinitionIn: env1.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   200
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   201
    self assert: point identicalTo: point2.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   202
    self assert: point superclass identicalTo: object.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   203
    self assert: point identicalTo: method parent.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   204
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   205
    self assert: point unresolvedProperties size equals: 0.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   206
    self assert: point ask localMethods size equals: Point localMethods size
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   207
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   208
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   209
testBehaviorLocalMethods
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   210
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   211
    | env1 point selectors |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   212
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   213
    env1 := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   214
    env1 backend: (RGReadOnlyImageBackend for: env1).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   215
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   216
    point := Point asRingMinimalDefinitionIn: env1.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   217
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   218
    self assert: point ask localMethods size equals: Point localMethods size.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   219
    self assert: (point ask localMethods 
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   220
        allSatisfy: [:each | each isKindOf: RGMethod]).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   221
    selectors := point ask localMethods collect: [ :each | each ask selector ].
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   222
    self assert: (selectors allSatisfy: [:each | each isSymbol]).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   223
    self assert: selectors asSortedCollection equals: Point localSelectors asSortedCollection.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   224
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   225
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   226
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   227
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   228
testClassComment
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   229
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   230
    | env comment |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   231
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   232
    env := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   233
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   234
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   235
    comment := (Point asRingMinimalDefinitionIn: env) comment.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   236
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   237
    comment content notEmpty.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   238
    comment author notEmpty.
10
1fa4cd506c87 core: use `Timestamp` instead of (Pharo) `DateAndTime`
Jan Vrany <jan.vrany@labware.com>
parents: 9
diff changeset
   239
    comment time > Timestamp epoch.
1fa4cd506c87 core: use `Timestamp` instead of (Pharo) `DateAndTime`
Jan Vrany <jan.vrany@labware.com>
parents: 9
diff changeset
   240
    comment time <= Timestamp now.
9
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   241
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   242
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   243
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   244
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   245
testClassVariable
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   246
    | env classVariable |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   247
    env := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   248
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   249
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   250
    classVariable := (UIManager classVariableNamed: #Default) asRingMinimalDefinitionIn: env.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   251
    self assert: classVariable isClassVariable.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   252
    self assert: classVariable name equals: #Default.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   253
    self assert: classVariable parent name equals: #UIManager
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   254
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   255
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   256
testDefinitionsIdentity
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   257
    | env1 |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   258
    env1 := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   259
    env1 backend: (RGReadOnlyImageBackend for: env1).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   260
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   261
    self assert: (Object >> #isRGObject asRingMinimalDefinitionIn: env1) identicalTo: (Object >> #isRGObject asRingMinimalDefinitionIn: env1).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   262
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   263
    self assert: (Object >> #isRGObject asRingMinimalDefinitionIn: env1) parent identicalTo: (Object >> #isRGObject asRingMinimalDefinitionIn: env1) parent
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   264
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   265
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   266
testGlobalVariable
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   267
    | env real globalVariable |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   268
    env := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   269
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   270
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   271
    real := Smalltalk globals associations detect: [ :each | each key = #Smalltalk ].
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   272
    globalVariable := real asRingMinimalDefinitionIn: env.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   273
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   274
    self assert: globalVariable name equals: #Smalltalk
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   275
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   276
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   277
testMethod
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   278
    | env method |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   279
    env := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   280
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   281
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   282
    method := Point >> #x asRingMinimalDefinitionIn: env.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   283
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   284
    self assert: method author notEmpty.
10
1fa4cd506c87 core: use `Timestamp` instead of (Pharo) `DateAndTime`
Jan Vrany <jan.vrany@labware.com>
parents: 9
diff changeset
   285
    self assert: (method time <= Timestamp now).
9
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   286
    self assert: method selector equals: #x.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   287
    self assert: (method package isRGObject and: [ method package isPackage ]).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   288
    self assert: method package name equals: 'Kernel'.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   289
    self assert: method package identicalTo: method parent package.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   290
    self assert: method sourceCode equals: (Point >> #x) sourceCode.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   291
    self assert: method ast equals: (Point >> #x) ast
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   292
!
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   293
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   294
testSlots
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   295
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   296
    | env slot |
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   297
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   298
    env := RGEnvironment new.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   299
    env backend: (RGReadOnlyImageBackend for: env).
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   300
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   301
    slot := (Point slotNamed: #x) asRingMinimalDefinitionIn: env.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   302
    self assert: slot isSlot.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   303
    self assert: slot name equals: #x.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   304
    self assert: slot parent isLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   305
    self assert: slot parent isFixedLayout.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   306
    self assert: slot parent parent name equals: #Point.
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   307
    
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   308
! !
d64df1abdf2a Initial commit
Jan Vrany <jan.vrany@labware.com>
parents:
diff changeset
   309