32 classified: 'accessing' |
32 classified: 'accessing' |
33 sourced: 'fakeMethod |
33 sourced: 'fakeMethod |
34 ^lastIndex - firstIndex + 1'. |
34 ^lastIndex - firstIndex + 1'. |
35 |
35 |
36 self assert: (newClass hasMethods). |
36 self assert: (newClass hasMethods). |
37 self assert: (newClass selectors = #(add: size)). |
37 self assert: (newClass selectors size == 2). |
|
38 self assert: (newClass selectors includesAll: #(add: size)). |
38 self assert: (newClass includesSelector: #add:). |
39 self assert: (newClass includesSelector: #add:). |
39 self assert: ((newClass methodNamed: #add:) = newMethod). |
40 self assert: ((newClass methodNamed: #add:) = newMethod). |
40 self assert: (newClass methods size = 2). |
41 self assert: (newClass methods size = 2). |
41 self assert: (newClass selectors size = 2). |
42 self assert: (newClass selectors size = 2). |
42 self assert: (newClass allSelectors size = 2). "no hierarchy" |
43 self assert: (newClass allSelectors size = 2). "no hierarchy" |
64 ! |
67 ! |
65 |
68 |
66 testAsClassDefinition2 |
69 testAsClassDefinition2 |
67 |
70 |
68 | newClass | |
71 | newClass | |
69 newClass:= Trait asRingDefinition. |
72 newClass:= Class asRingDefinition. |
70 |
73 |
71 self assert: (newClass isRingObject). |
74 self assert: (newClass isRingObject). |
72 self assert: (newClass isClass). |
75 self assert: (newClass isClass). |
73 self assert: (newClass name == #Trait). |
76 self assert: (newClass name == #Class). |
74 self assert: (newClass category notNil). |
77 self assert: (newClass category notNil). |
75 self assert: (newClass superclassName notNil). |
78 self assert: (newClass superclassName notNil). |
76 self assert: (newClass traitCompositionSource = 'TClass'). |
79 "/ self assert: (newClass traitCompositionSource = 'TClass'). |
77 |
80 |
78 self assert: (newClass theMetaClass isRingObject). |
81 self assert: (newClass theMetaClass isRingObject). |
79 self assert: (newClass theMetaClass isClass). |
82 self assert: (newClass theMetaClass isClass). |
80 self assert: (newClass theMetaClass traitCompositionSource = 'TClass classTrait'). |
83 "/ self assert: (newClass theMetaClass traitCompositionSource = 'TClass classTrait'). |
81 |
84 |
|
85 "Modified: / 29-08-2015 / 08:05:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
82 ! |
86 ! |
83 |
87 |
84 testAsClassDefinitionSourceDefinition |
88 testAsClassDefinitionSourceDefinition |
85 |
89 |
86 | newClass | |
90 | newClass | |
87 newClass:= Trait asRingDefinition. |
91 newClass:= Class asRingDefinition. |
88 self assert: (newClass definitionSource = 'TraitDescription subclass: #Trait |
92 self assert: (newClass definitionSource = '"{ Package: ''stx:libbasic'' }" |
89 uses: TClass |
93 |
90 instanceVariableNames: ''name environment classTrait category'' |
94 "{ NameSpace: Smalltalk }" |
91 classVariableNames: '''' |
95 |
92 poolDictionaries: '''' |
96 ClassDescription subclass:#Class |
93 category: ''Traits-Kernel'''). |
97 instanceVariableNames:''name category classvars comment subclasses classFilename package |
94 |
98 revision environment signature attributes'' |
95 self assert: (newClass theMetaClass definitionSource = 'Trait class |
99 classVariableNames:''DefaultCategoryForSTV DefaultCategoryForVAGE |
96 uses: TClass classTrait |
100 DefaultCategoryForDolphin ValidateSourceOnlyOnce ValidatedClasses |
97 instanceVariableNames: '''''). |
101 SubclassCacheSequenceNumber |
98 |
102 DefaultCategoryForUncategorizedClasses |
|
103 DefaultCategoryForUndeclaredClasses'' |
|
104 poolDictionaries:'''' |
|
105 category:''Kernel-Classes'' |
|
106 '). |
|
107 |
|
108 self assert: (newClass theMetaClass definitionSource= 'Class class instanceVariableNames:'''' |
|
109 |
|
110 " |
|
111 No other class instance variables are inherited by this class. |
|
112 " |
|
113 '). |
|
114 |
|
115 "Modified (format): / 29-08-2015 / 08:07:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
99 ! |
116 ! |
100 |
117 |
101 testAsRingDefinition |
118 testAsRingDefinition |
102 self assert: OrderedCollection asRingDefinition asRingDefinition isRingObject |
119 self assert: OrderedCollection asRingDefinition asRingDefinition isRingObject |
103 ! |
120 ! |
227 ! |
244 ! |
228 |
245 |
229 testWithClassInstanceVariables |
246 testWithClassInstanceVariables |
230 | newClass metaClass classInstVar | |
247 | newClass metaClass classInstVar | |
231 |
248 |
232 newClass:= RGClassDefinition named: #HashTableSizes. |
249 newClass:= RGClassDefinition named: #GenericException. |
233 newClass withMetaclass. |
250 newClass withMetaclass. |
234 metaClass:= newClass theMetaClass. |
251 metaClass:= newClass theMetaClass. |
235 metaClass addInstanceVariables: #(sizes). |
252 metaClass addInstanceVariables: #(NotifierString). |
236 |
253 |
237 self assert: (metaClass instanceVariables size = 1). |
254 self assert: (metaClass instanceVariables size = 1). |
238 self assert: (metaClass instVarNames size = 1). |
255 self assert: (metaClass instVarNames size = 1). |
239 self assert: (metaClass allInstVarNames size = 1). |
256 self assert: (metaClass allInstVarNames size = 1). |
240 |
257 |
241 classInstVar:= metaClass instanceVariableNamed: #sizes. |
258 classInstVar:= metaClass instanceVariableNamed: #NotifierString. |
242 self assert: (classInstVar notNil). |
259 self assert: (classInstVar notNil). |
243 self assert: (classInstVar parent = metaClass). |
260 self assert: (classInstVar parent = metaClass). |
244 self assert: (classInstVar isClassInstanceVariable). |
261 self assert: (classInstVar isClassInstanceVariable). |
245 self assert: (classInstVar isVariable). |
262 self assert: (classInstVar isVariable). |
246 self assert: (classInstVar parentName = metaClass name). |
263 self assert: (classInstVar parentName = metaClass name). |
247 self assert: (classInstVar realClass = HashTableSizes class). |
264 self assert: (classInstVar realClass = GenericException class). |
248 |
265 |
249 metaClass removeInstVarNamed: #sizes. |
266 metaClass removeInstVarNamed: #NotifierString. |
250 self assert: (metaClass instanceVariables isEmpty). |
267 self assert: (metaClass instanceVariables isEmpty). |
251 self assert: ((metaClass instanceVariableNamed: #sizes) isNil). |
268 self assert: ((metaClass instanceVariableNamed: #NotifierString) isNil). |
252 |
269 |
|
270 "Modified: / 29-08-2015 / 10:28:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
253 ! |
271 ! |
254 |
272 |
255 testWithClassVariables |
273 testWithClassVariables |
256 | newClass classVar | |
274 | newClass classVar | |
257 |
275 |