/
RGMetaclassTraitTest.class.st
87 lines (60 loc) · 2.22 KB
/
RGMetaclassTraitTest.class.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Class {
#name : #RGMetaclassTraitTest,
#superclass : #RGTest,
#traits : 'TRGBehaviorTest',
#classTraits : 'TRGBehaviorTest classTrait',
#category : #'Ring-Tests-Core'
}
{ #category : #'as yet unclassified' }
RGMetaclassTraitTest >> behaviorClass [
^ RGMetaclassTrait
]
{ #category : #'as yet unclassified' }
RGMetaclassTraitTest >> testEnsureProtocol [
| behavior |
behavior := self behaviorClass named: #SomeClass.
behavior ensureProtocolNamed: #SomeProtocol.
self assert: behavior protocols size equals: 1.
self assert: behavior protocols first equals: #SomeProtocol.
]
{ #category : #tests }
RGMetaclassTraitTest >> testImplicitConversionFromClass [
| env |
env := RGEnvironment new.
env ensureClassNamed: #SomeTrait.
self assert: (env ask behaviors select: [ :e | e name = #'SomeTrait' ]) size equals: 1.
self assert: (env ask behaviors select: [ :e | e name = #'SomeTrait clss' ]) size equals: 0.
env ensureTraitNamed: #'SomeTrait'.
self assert: (env ask behaviors select: [ :e | e name = #'SomeTrait' ]) size equals: 1.
self assert: (env ask behaviors select: [ :e | e name = #'SomeTrait classTrait' ]) size equals: 0.
self assert: (env ask behaviors select: [ :e | e name = #'SomeTrait clss' ]) size equals: 0.
env.
]
{ #category : #tests }
RGMetaclassTraitTest >> testImplicitConversionFromClassProperties [
| env entity |
env := RGEnvironment new.
entity := env ensureClassNamed: #SomeTrait.
entity := env ensureTraitNamed: #'SomeTrait'.
self assert: entity classTrait isTrait.
self assert: entity classTrait baseTrait equals: entity.
]
{ #category : #tests }
RGMetaclassTraitTest >> testMetaclassTraitImplicitEnvironment [
| trait |
trait := RGMetaclassTrait unnamed.
self assert: (trait hasUnresolved: #name).
self checkImplicitSingleTraitEnvironmentOf: trait baseTrait.
]
{ #category : #tests }
RGMetaclassTraitTest >> testNewMetaclassTrait [
| trait baseTrait |
trait := RGMetaclassTrait unnamed.
self assert: (trait isRingResolved).
self assert: (trait hasUnresolved: #baseTrait).
self assert: (trait isTrait).
baseTrait := RGTrait parent: trait environment.
trait baseTrait: baseTrait.
self assert: (trait hasResolved: #baseTrait).
self assert: (trait baseTrait == baseTrait).
]