Skip to content

Commit

Permalink
Test proposition for 5 rules.
Browse files Browse the repository at this point in the history
this commit propose 5 tests for rules from Genral-Rules-Tests : ReClassNotCategorizedRule, ReClassVariableCapitalizationRule, ReEquivalentSuperClassMethodsRule, ReExcessiveInheritanceRule, RelongMethodsRuleTest
  • Loading branch information
Hely committed Apr 17, 2024
1 parent fb29a7b commit c4f66c3
Show file tree
Hide file tree
Showing 5 changed files with 276 additions and 0 deletions.
68 changes: 68 additions & 0 deletions src/General-Rules-Tests/ReClassNotCategorizedRuleTest.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
Class {
#name : 'ReClassNotCategorizedRuleTest',
#superclass : 'ReAbstractRuleTestCase',
#instVars : [
'classFactory'
],
#category : 'General-Rules-Tests-Migrated',
#package : 'General-Rules-Tests',
#tag : 'Migrated'
}

{ #category : 'running' }
ReClassNotCategorizedRuleTest >> setUp [

super setUp.
classFactory := ClassFactoryForTestCase new
]

{ #category : 'running' }
ReClassNotCategorizedRuleTest >> tearDown [

classFactory cleanUp.
super tearDown
]

{ #category : 'tests' }
ReClassNotCategorizedRuleTest >> testAllClassesAreNotTagged [

| critiques aClass anotherClass |
aClass := classFactory make: [ :builder |
builder package: 'aPackage' ].
anotherClass := classFactory make: [ :builder |
builder package: 'aPackage' ].
critiques := self myCritiquesOnClass: aClass.
self assertEmpty: critiques.
critiques := self myCritiquesOnClass: anotherClass.
self assertEmpty: critiques
]

{ #category : 'tests' }
ReClassNotCategorizedRuleTest >> testRule [

| classCatorized classNotCatorized critiques |
classCatorized := classFactory make: [ :builder |
builder
tag: 'aTag';
package: 'aPackage' ].
classNotCatorized := classFactory make: [ :builder |
builder package: 'aPackage' ].
critiques := self myCritiquesOnClass: classNotCatorized.
self assert: critiques size equals: 1
]

{ #category : 'tests' }
ReClassNotCategorizedRuleTest >> testRuleNotViolated [

| classCatorized anotherClassCatorized critiques |
classCatorized := classFactory make: [ :builder |
builder
tag: 'aTag';
package: 'aPackage' ].
anotherClassCatorized := classFactory make: [ :builder |
builder
tag: 'aTag';
package: 'aPackage' ].
critiques := self myCritiquesOnClass: anotherClassCatorized.
self assertEmpty: critiques
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Class {
#name : 'ReClassVariableCapitalizationRuleTest',
#superclass : 'ReAbstractRuleTestCase',
#instVars : [
'classFactory'
],
#category : 'General-Rules-Tests-Migrated',
#package : 'General-Rules-Tests',
#tag : 'Migrated'
}

{ #category : 'running' }
ReClassVariableCapitalizationRuleTest >> setUp [

super setUp.
classFactory := ClassFactoryForTestCase new
"Put here a common initialization logic for tests"
]

{ #category : 'running' }
ReClassVariableCapitalizationRuleTest >> tearDown [
classFactory cleanUp.
super tearDown
]

{ #category : 'tests' }
ReClassVariableCapitalizationRuleTest >> testPoolVariableNameStartWithLowerCase [

| critiques myClass |
myClass := classFactory make: [ :builder |
builder sharedVariables: { #pool }].
critiques := self myCritiquesOnClass: myClass.
self assert: critiques size equals: 1
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Class {
#name : 'ReEquivalentSuperclassMethodsRuleTest',
#superclass : 'ReAbstractRuleTestCase',
#category : 'General-Rules-Tests-Migrated',
#package : 'General-Rules-Tests',
#tag : 'Migrated'
}

{ #category : 'utilities' }
ReEquivalentSuperclassMethodsRuleTest >> myCritiques [

| critiques |
critiques := OrderedCollection new.
self subjectUnderTest new
check: self class >> #sampleMethod
forCritiquesDo: [ :critique | critiques add: critique ].
^ critiques
]

{ #category : 'tests' }
ReEquivalentSuperclassMethodsRuleTest >> testRule [

| critiques |
critiques := self myCritiquesOnMethod: self class >> #myCritiques.
self assert: critiques size equals: 1
]
72 changes: 72 additions & 0 deletions src/General-Rules-Tests/ReExcessiveInheritanceRuleTest.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
Class {
#name : 'ReExcessiveInheritanceRuleTest',
#superclass : 'ReAbstractRuleTestCase',
#instVars : [
'classFactory'
],
#category : 'General-Rules-Tests-Migrated',
#package : 'General-Rules-Tests',
#tag : 'Migrated'
}

{ #category : 'running' }
ReExcessiveInheritanceRuleTest >> setUp [

super setUp.
classFactory := ClassFactoryForTestCase new
]

{ #category : 'running' }
ReExcessiveInheritanceRuleTest >> tearDown [

classFactory cleanUp.
super tearDown
]

{ #category : 'tests' }
ReExcessiveInheritanceRuleTest >> testRule [
"the superclass of ClassFactoryForTestCase is Object so the inheritance depth start at 2"
| critiques aClass subClass1 subClass2 subClass3 subClass4 subClass5 subClass6 subClass7 myClass |
aClass := classFactory make: [ :builder | builder ].
subClass1 := classFactory make: [ :builder |
builder superclass: aClass ].
subClass2 := classFactory make: [ :builder |
builder superclass: subClass1 ].
subClass3 := classFactory make: [ :builder |
builder superclass: subClass2 ].
subClass4 := classFactory make: [ :builder |
builder superclass: subClass3 ].
subClass5 := classFactory make: [ :builder |
builder superclass: subClass4 ].
subClass6 := classFactory make: [ :builder |
builder superclass: subClass5 ].
subClass7 := classFactory make: [ :builder |
builder superclass: subClass6 ].
myClass := classFactory make: [ :builder |
builder superclass: subClass7 ].
critiques := self myCritiquesOnClass: myClass.
self assert: critiques size equals: 1
]

{ #category : 'tests' }
ReExcessiveInheritanceRuleTest >> testRuleNotViolated [

| critiques aClass subClass1 subClass2 subClass3 subClass4 subClass5 subClass6 myClass |
aClass := classFactory make: [ :builder | builder ].
subClass1 := classFactory make: [ :builder |
builder superclass: aClass ].
subClass2 := classFactory make: [ :builder |
builder superclass: subClass1 ].
subClass3 := classFactory make: [ :builder |
builder superclass: subClass2 ].
subClass4 := classFactory make: [ :builder |
builder superclass: subClass3 ].
subClass5 := classFactory make: [ :builder |
builder superclass: subClass4 ].
subClass6 := classFactory make: [ :builder |
builder superclass: subClass5 ].
myClass := classFactory make: [ :builder |
builder superclass: subClass6 ].
critiques := self myCritiquesOnClass: myClass.
self assertEmpty: critiques
]
76 changes: 76 additions & 0 deletions src/General-Rules-Tests/ReLongMethodsRuleTest.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
Class {
#name : 'ReLongMethodsRuleTest',
#superclass : 'ReAbstractRuleTestCase',
#category : 'General-Rules-Tests-Migrated',
#package : 'General-Rules-Tests',
#tag : 'Migrated'
}

{ #category : 'lint' }
ReLongMethodsRuleTest >> longMethods [

| n |
n := 1.
n := 2.
n := 3.
n := 4.
n := 5.
n := 6.
n := 7.
n := 8.
n := 9.
n := 10.
n := 11.
n := 12.
n := 13.
n := 14.
n := 15.
n := 16.
n := 16.
n := 17.
n := 18.
n := 19
]

{ #category : 'lint' }
ReLongMethodsRuleTest >> smallMethod [

| n |
n := 1.
n := 2.
n := 3.
n := 4.
n := 5.
n := 6.
n := 7.
n := 8.
n := 9.
n := 10.
n := 11.
n := 12.
n := 13.
n := 14.
n := 15.
n := 16.
n := 16.
n := 17.
n := 18
]

{ #category : 'tests' }
ReLongMethodsRuleTest >> testRule [
|critiques|
critiques := self myCritiquesOnMethod: self class >> #longMethods.
self assert: critiques size equals: 1


]

{ #category : 'tests' }
ReLongMethodsRuleTest >> testRuleNotViolated [
|critiques|
critiques := self myCritiquesOnMethod: self class >> #smallMethod.
self assertEmpty: critiques


]

0 comments on commit c4f66c3

Please sign in to comment.