Skip to content

Commit a26da3a

Browse files
Merge pull request #221 from OpenSmock/dev-220
Fix #220
2 parents 17ea52d + 0857f16 commit a26da3a

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

src/Molecule-Tests/MolCompleteComponentOverloadImpl.class.st

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ I am a component impl overloading my contract for impl purpose
44
Class {
55
#name : #MolCompleteComponentOverloadImpl,
66
#superclass : #MolAbstractComponentImpl,
7-
#traits : 'MolCompleteComponent + MolUsedEvents + MolUsedEvents2 + MolUsedServices2 + MolUsedServices + MolUsedParameters + MolUsedParameters2',
8-
#classTraits : 'MolCompleteComponent classTrait + MolUsedEvents classTrait + MolUsedEvents2 classTrait + MolUsedServices2 classTrait + MolUsedServices classTrait + MolUsedParameters classTrait + MolUsedParameters2 classTrait',
7+
#traits : 'MolCompleteComponent + MolUsedEvents + MolUsedEvents2 + MolUsedServices + MolUsedServices2 + MolUsedParameters + MolUsedParameters2',
8+
#classTraits : 'MolCompleteComponent classTrait + MolUsedEvents classTrait + MolUsedEvents2 classTrait + MolUsedServices classTrait + MolUsedServices2 classTrait + MolUsedParameters classTrait + MolUsedParameters2 classTrait',
99
#category : #'Molecule-Tests-Resources - Components'
1010
}
1111

src/Molecule-Tests/MolComponentFactoryTest.class.st

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,9 +271,18 @@ MolComponentFactoryTest >> testCollectComponentConnectionTraitsOrder [
271271
| traits |
272272
traits := MolComponentFactory default collectComponentConnectionTraits: MolCompleteComponentImpl.
273273
self assert: traits size equals: 3.
274-
self assert: (traits at: 1) equals: MolUsedEvents.
274+
self assert: (traits first) equals: MolUsedEvents.
275275
self assert: (traits at: 2) equals: MolUsedServices.
276-
self assert: (traits at: 3) equals: MolUsedParameters
276+
self assert: (traits at: 3) equals: MolUsedParameters.
277+
278+
traits := MolComponentFactory default collectComponentConnectionTraits: MolCompleteComponentOverloadImpl.
279+
self assert: traits size equals: 6.
280+
self assert: (traits first) equals: MolUsedEvents.
281+
self assert: (traits at: 2) equals: MolUsedEvents2.
282+
self assert: (traits at: 3) equals: MolUsedServices.
283+
self assert: (traits at: 4) equals: MolUsedServices2.
284+
self assert: (traits at: 5) equals: MolUsedParameters.
285+
self assert: (traits at: 6) equals: MolUsedParameters2.
277286
]
278287

279288
{ #category : #tests }

src/Molecule/MolComponentFactory.class.st

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,10 +1067,17 @@ MolComponentFactory >> removeOldUsedParametersAndServicesComponentAccessorsFor:
10671067
{ #category : #private }
10681068
MolComponentFactory >> sortTraits: aTraitsList [
10691069

1070-
| events services parameters |
1071-
events := aTraitsList select: [ :e | e isComponentEvents ].
1072-
services := aTraitsList select: [ :e | e isComponentServices ].
1073-
parameters := aTraitsList select: [ :e | e isComponentParameters ].
1070+
| events services parameters sortedBlock |
1071+
1072+
aTraitsList ifEmpty:[ ^ #( ) ].
1073+
1074+
"Sort traits by name"
1075+
sortedBlock := [ :a :b | a name < b name ].
1076+
1077+
"Collect events, then services, then parameters"
1078+
events := (aTraitsList select: [ :e | e isComponentEvents ]) asSortedCollection: sortedBlock.
1079+
services := (aTraitsList select: [ :e | e isComponentServices ]) asSortedCollection: sortedBlock.
1080+
parameters := (aTraitsList select: [ :e | e isComponentParameters ]) asSortedCollection: sortedBlock.
10741081

10751082
^ (OrderedCollection withAll: events) addAll: services; addAll: parameters; removeDuplicates; yourself
10761083
]

0 commit comments

Comments
 (0)