Skip to content

Commit

Permalink
Adding tests of the composition expression.
Browse files Browse the repository at this point in the history
  • Loading branch information
tesonep committed Aug 2, 2019
1 parent f05a444 commit 1f7be29
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
62 changes: 62 additions & 0 deletions src/TraitsV2-Tests/T2PrecedenceCompositionTest.class.st
Expand Up @@ -48,6 +48,68 @@ T2PrecedenceCompositionTest >> testCopyingAPrecedenceKeepsPreference [

]

{ #category : #tests }
T2PrecedenceCompositionTest >> testPrecedencesAreGeneratedInClassDefinition [
| t1 t2 t3 c1 |
t1 := self newTrait: #T1 with: #() uses: #().
t1 classTrait uses: {} slots: #().

t2 := self newTrait: #T2 with: #() uses: #().
t2 classTrait uses: {} slots: #().

t3 := self newTrait: #T3 with: #() uses: #().
t3 classTrait uses: {} slots: #().

t1 compile: 'm1 ^ 42'.
t2 compile: 'm1 ^ 33'.
t3 compile: 'm2 ^ 11'.

c1 := self
newClass: #C1
with: #()
uses: (t2 + t1 + t3 withPrecedenceOf: t2).

self
assert: c1 definition
equals:
'Object subclass: #C1
uses: (T2 + T1 + T3 withPrecedenceOf: T2)
instanceVariableNames: ''''
classVariableNames: ''''
package: ''TraitsV2-Tests-TestClasses'''
]

{ #category : #tests }
T2PrecedenceCompositionTest >> testPrecedencesAreGeneratedInClassDefinitionWithAlias [
| t1 t2 t3 c1 |
t1 := self newTrait: #T1 with: #() uses: #().
t1 classTrait uses: {} slots: #().

t2 := self newTrait: #T2 with: #() uses: #().
t2 classTrait uses: {} slots: #().

t3 := self newTrait: #T3 with: #() uses: #().
t3 classTrait uses: {} slots: #().

t1 compile: 'm1 ^ 42'.
t2 compile: 'm1 ^ 33'.
t3 compile: 'm2 ^ 11'.

c1 := self
newClass: #C1
with: #()
uses: (t2 + (t1 -- #aSlot) + t3 withPrecedenceOf: t2).

self
assert: c1 definition
equals:
'Object subclass: #C1
uses: (T2 + (T1 -- #aSlot) + T3 withPrecedenceOf: T2)
instanceVariableNames: ''''
classVariableNames: ''''
package: ''TraitsV2-Tests-TestClasses'''
]

{ #category : #tests }
T2PrecedenceCompositionTest >> testPrecedencesCanBeCombined [

Expand Down
6 changes: 6 additions & 0 deletions src/TraitsV2/TaPrecedenceComposition.class.st
Expand Up @@ -65,3 +65,9 @@ TaPrecedenceComposition >> preferedTrait [
TaPrecedenceComposition >> preferedTrait: anObject [
preferedTrait := anObject
]

{ #category : #accessing }
TaPrecedenceComposition >> traitCompositionExpression [

^ '(' , (super traitCompositionExpression) , ' withPrecedenceOf: ' , preferedTrait traitCompositionExpression , ')'
]

0 comments on commit 1f7be29

Please sign in to comment.