-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test: test transformation rule order
- Loading branch information
Showing
12 changed files
with
281 additions
and
5 deletions.
There are no files selected for viewing
51 changes: 51 additions & 0 deletions
51
src/Moco-Core-Tests/MocoTransformationRulePriorityTestTrait.trait.st
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
" | ||
Provides utility method for asserting the order of transformation rules. | ||
" | ||
Trait { | ||
#name : #MocoTransformationRulePriorityTestTrait, | ||
#category : #'Moco-Core-Tests-Trait' | ||
} | ||
|
||
{ #category : #asserting } | ||
MocoTransformationRulePriorityTestTrait >> assertRule: aClass isAfter: aCollection [ | ||
"Asserts that the given transformation rule has lower priority than all rules in the given collection." | ||
|
||
| testEngine rule | | ||
testEngine := MocoTestTransformationEngine new. | ||
|
||
rule := aClass newWithEngine: testEngine. | ||
|
||
aCollection do: [ :each | | ||
self assert: (((each newWithEngine: testEngine) priority) > (rule priority)) | ||
] | ||
] | ||
|
||
{ #category : #asserting } | ||
MocoTransformationRulePriorityTestTrait >> assertRule: aClass isBefore: aCollection [ | ||
"Asserts that the given transformation rule has greater priority than all rules in the given collection." | ||
|
||
| testEngine rule | | ||
testEngine := MocoTestTransformationEngine new. | ||
|
||
rule := aClass newWithEngine: testEngine. | ||
|
||
aCollection do: [ :each | | ||
self assert: (((each newWithEngine: testEngine) priority) < (rule priority)) | ||
] | ||
] | ||
|
||
{ #category : #asserting } | ||
MocoTransformationRulePriorityTestTrait >> assertRuleOrder: aCollection [ | ||
"Asserts that when sorted by their priority, the rules remain in the same order as given in the collection." | ||
|
||
| testEngine expected actual | | ||
testEngine := MocoTestTransformationEngine new. | ||
|
||
expected := aCollection asOrderedCollection. | ||
|
||
actual := expected collect: [ :each | { each. ((each newWithEngine: testEngine) priority) } ]. | ||
actual := actual sorted: [ :a :b | (a second) > (b second) ]. | ||
actual := actual collect: [ :each | each first ]. | ||
|
||
self assert: actual equals: expected | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
Class { | ||
#name : #MocoD2SRulePriorityTest, | ||
#superclass : #MocoTransformationRuleTestCase, | ||
#traits : 'MocoTransformationRulePriorityTestTrait', | ||
#classTraits : 'MocoTransformationRulePriorityTestTrait classTrait', | ||
#category : #'Moco-D2S-Tests-Rule' | ||
} | ||
|
||
{ #category : #tests } | ||
MocoD2SRulePriorityTest >> testForeignKeyPriority [ | ||
self assertRule: MocoRdbForeignKeyTransformationRule | ||
isAfter: { MocoRdbTableTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoD2SRulePriorityTest >> testTablePriority [ | ||
self assertRule: MocoRdbTableTransformationRule | ||
isBefore: { MocoRdbForeignKeyTransformationRule. | ||
MocoRdbOclEnumerationTransformationRule. | ||
MocoRdbOclExclusiveAssociationTransformationRule. | ||
MocoRdbOclGeneralizationSetTransformationRule. | ||
MocoRdbOclImmutableAssociationDeleteTransformationRule. | ||
MocoRdbOclImmutableColumnTransformationRule. | ||
MocoRdbOclMandatoryMultiplicityTransformationRule. | ||
MocoRdbOclSpecialMultiplicityTransformationRule } | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
Class { | ||
#name : #MocoO2URulePriorityTest, | ||
#superclass : #MocoTransformationRuleTestCase, | ||
#traits : 'MocoTransformationRulePriorityTestTrait', | ||
#classTraits : 'MocoTransformationRulePriorityTestTrait classTrait', | ||
#category : #'Moco-O2U-Tests-Rule' | ||
} | ||
|
||
{ #category : #tests } | ||
MocoO2URulePriorityTest >> testAssociationStereotypePriority [ | ||
self assertRule: MocoOntoUmlAssociationTransformationRule | ||
isAfter: { MocoOntoUmlCharacterizationAssociationTransformationRule. | ||
MocoOntoUmlMaterialAssociationTransformationRule. | ||
MocoOntoUmlMediationAssociationTransformationRule. | ||
MocoOntoUmlPartWholeAssociationTransformationRule. | ||
MocoOntoUmlContainmentAssociationTransformationRule }. | ||
|
||
self assertRule: MocoOntoUmlPartWholeAssociationTransformationRule | ||
isAfter: { MocoOntoUmlContainmentAssociationTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoO2URulePriorityTest >> testClassPriority [ | ||
self assertRule: MocoOntoUmlClassTransformationRule | ||
isBefore: { MocoOntoUmlAssociationTransformationRule. | ||
MocoOntoUmlEnumerationTransformationRule. | ||
MocoOntoUmlGeneralizationTransformationRule. | ||
MocoOntoUmlGeneralizationSetTransformationRule. | ||
MocoOntoUmlRelatorOptimizationTransformationRule. | ||
MocoOntoUmlRoleOptimizationTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoO2URulePriorityTest >> testClassStereotypePriority [ | ||
self assertRule: MocoOntoUmlClassTransformationRule | ||
isAfter: { MocoOntoUmlCategoryTransformationRule. | ||
MocoOntoUmlCollectiveTransformationRule. | ||
MocoOntoUmlKindTransformationRule. | ||
MocoOntoUmlMixinTransformationRule. | ||
MocoOntoUmlPhaseMixinTransformationRule. | ||
MocoOntoUmlRoleMixinTransformationRule. | ||
MocoOntoUmlModeTransformationRule. | ||
MocoOntoUmlPhaseTransformationRule. | ||
MocoOntoUmlQualityTransformationRule. | ||
MocoOntoUmlQuantityTransformationRule. | ||
MocoOntoUmlRelatorTransformationRule. | ||
MocoOntoUmlRoleTransformationRule. | ||
MocoOntoUmlSubKindTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoO2URulePriorityTest >> testGeneralizationPriority [ | ||
self assertRule: MocoOntoUmlGeneralizationTransformationRule | ||
isBefore: { MocoOntoUmlGeneralizationSetTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoO2URulePriorityTest >> testOptimizationPriority [ | ||
| after | | ||
after := { MocoOntoUmlClassTransformationRule. | ||
MocoOntoUmlAssociationTransformationRule. | ||
MocoOntoUmlGeneralizationTransformationRule. | ||
MocoOntoUmlGeneralizationSetTransformationRule }. | ||
|
||
self assertRule: MocoOntoUmlRelatorOptimizationTransformationRule isAfter: after; | ||
assertRule: MocoOntoUmlRoleOptimizationTransformationRule isAfter: after | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 22 additions & 0 deletions
22
src/Moco-OpenPonk-Tests/MocoOpenPonkRulePriorityTest.class.st
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
Class { | ||
#name : #MocoOpenPonkRulePriorityTest, | ||
#superclass : #MocoTransformationRuleTestCase, | ||
#traits : 'MocoTransformationRulePriorityTestTrait', | ||
#classTraits : 'MocoTransformationRulePriorityTestTrait classTrait', | ||
#category : #'Moco-OpenPonk-Tests-Rule' | ||
} | ||
|
||
{ #category : #tests } | ||
MocoOpenPonkRulePriorityTest >> testClassPriority [ | ||
self assertRule: MocoOpenPonkOntoUmlClassTransformationRule | ||
isBefore: { MocoOpenPonkOntoUmlAssociationTransformationRule. | ||
MocoOpenPonkOntoUmlEnumerationTransformationRule. | ||
MocoOpenPonkOntoUmlGeneralizationTransformationRule. | ||
MocoOpenPonkOntoUmlGeneralizationSetTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoOpenPonkRulePriorityTest >> testGeneralizationPriority [ | ||
self assertRule: MocoOpenPonkOntoUmlGeneralizationTransformationRule | ||
isBefore: { MocoOpenPonkOntoUmlGeneralizationSetTransformationRule } | ||
] |
14 changes: 14 additions & 0 deletions
14
src/Moco-OpenPonk-Tests/MocoOpenPonkRuleRdbPriorityTest.class.st
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
Class { | ||
#name : #MocoOpenPonkRuleRdbPriorityTest, | ||
#superclass : #MocoTransformationRuleTestCase, | ||
#traits : 'MocoTransformationRulePriorityTestTrait', | ||
#classTraits : 'MocoTransformationRulePriorityTestTrait classTrait', | ||
#category : #'Moco-OpenPonk-Tests-Rule-Rdb' | ||
} | ||
|
||
{ #category : #tests } | ||
MocoOpenPonkRuleRdbPriorityTest >> testTablePriority [ | ||
self assertRule: MocoOpenPonkRdbTableTransformationRule | ||
isBefore: { MocoOpenPonkRdbForeignKeyTransformationRule. | ||
MocoOpenPonkRdbOclTransformationRule } | ||
] |
27 changes: 27 additions & 0 deletions
27
src/Moco-OpenPonk-Tests/MocoOpenPonkRuleUmlPriorityTest.class.st
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
Class { | ||
#name : #MocoOpenPonkRuleUmlPriorityTest, | ||
#superclass : #MocoTransformationRuleTestCase, | ||
#traits : 'MocoTransformationRulePriorityTestTrait', | ||
#classTraits : 'MocoTransformationRulePriorityTestTrait classTrait', | ||
#category : #'Moco-OpenPonk-Tests-Rule-Uml' | ||
} | ||
|
||
{ #category : #tests } | ||
MocoOpenPonkRuleUmlPriorityTest >> testClassPriority [ | ||
self assertRule: MocoOpenPonkUmlClassTransformationRule | ||
isBefore: { MocoOpenPonkUmlAssociationTransformationRule. | ||
MocoOpenPonkUmlGeneralizationTransformationRule. | ||
MocoOpenPonkUmlOclTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoOpenPonkRuleUmlPriorityTest >> testEnumerationPriority [ | ||
self assertRule: MocoOpenPonkUmlEnumerationTransformationRule | ||
isBefore: { MocoOpenPonkUmlAssociationTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoOpenPonkRuleUmlPriorityTest >> testGeneralizationPriority [ | ||
self assertRule: MocoOpenPonkUmlGeneralizationTransformationRule | ||
isBefore: { MocoOpenPonkUmlGeneralizationSetTransformationRule } | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
34 changes: 34 additions & 0 deletions
34
src/Moco-U2D-Tests/MocoU2DRulePreprocessPriorityTest.class.st
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
Class { | ||
#name : #MocoU2DRulePreprocessPriorityTest, | ||
#superclass : #MocoTransformationRuleTestCase, | ||
#traits : 'MocoTransformationRulePriorityTestTrait', | ||
#classTraits : 'MocoTransformationRulePriorityTestTrait classTrait', | ||
#category : #'Moco-U2D-Tests-Rule-Preprocess' | ||
} | ||
|
||
{ #category : #tests } | ||
MocoU2DRulePreprocessPriorityTest >> testCopyRulePriority [ | ||
self assertRule: MocoUmlCopyTransformationRule | ||
isBefore: { MocoUmlCopyFixReferencesTransformationRule. | ||
MocoUmlEnumerationTransformationRule. | ||
MocoUmlNonNativeRdbTypeTransformationRule. | ||
MocoUmlMultiValueAttributeTransformationRule. | ||
MocoUmlManyToManyAssociationTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoU2DRulePreprocessPriorityTest >> testFixRulePriority [ | ||
self assertRule: MocoUmlCopyFixReferencesTransformationRule | ||
isBefore: { MocoUmlEnumerationTransformationRule. | ||
MocoUmlNonNativeRdbTypeTransformationRule. | ||
MocoUmlMultiValueAttributeTransformationRule. | ||
MocoUmlManyToManyAssociationTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoU2DRulePreprocessPriorityTest >> testOrder [ | ||
self assertRuleOrder: { MocoUmlEnumerationTransformationRule. | ||
MocoUmlNonNativeRdbTypeTransformationRule. | ||
MocoUmlMultiValueAttributeTransformationRule. | ||
MocoUmlManyToManyAssociationTransformationRule } | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
Class { | ||
#name : #MocoU2DRulePriorityTest, | ||
#superclass : #MocoTransformationRuleTestCase, | ||
#traits : 'MocoTransformationRulePriorityTestTrait', | ||
#classTraits : 'MocoTransformationRulePriorityTestTrait classTrait', | ||
#category : #'Moco-U2D-Tests-Rule' | ||
} | ||
|
||
{ #category : #tests } | ||
MocoU2DRulePriorityTest >> testClassRulePriority [ | ||
self assertRule: MocoUmlClassTransformationRule | ||
isBefore: { MocoUmlAssociationTransformationRule. | ||
MocoUmlGeneralizationTransformationRule. | ||
MocoUmlGeneralizationSetTransformationRule. | ||
MocoUmlOclEnumerationConstraintTransformationRule. | ||
MocoUmlOclExclusiveAssociationConditionTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoU2DRulePriorityTest >> testGeneralizationRulePriority [ | ||
self assertRule: MocoUmlGeneralizationTransformationRule | ||
isBefore: { MocoUmlGeneralizationSetTransformationRule } | ||
] | ||
|
||
{ #category : #tests } | ||
MocoU2DRulePriorityTest >> testMediatingClassRulePriority [ | ||
self assertRule: MocoUmlAssociationTransformationRule | ||
isBefore: { MocoUmlMediatingClassOptimizationTransformationRule } | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters