return whole source code when selected interval is empty
retrieve selector from method when none selector is specified
"{ Package: 'jn:refactoring_custom' }"
TestCase subclass:#CustomRBClassTests
instanceVariableNames:'rbClass mock model'
classVariableNames:''
poolDictionaries:''
category:'Interface-Refactoring-Custom-Tests'
!
!CustomRBClassTests class methodsFor:'documentation'!
documentation
"
Test extensions in RBAbstractClass.
[author:]
Jakub Nesveda <nesvejak@fit.cvut.cz>
"
! !
!CustomRBClassTests methodsFor:'initialization & release'!
setUp
mock := CustomMock new.
model := RBNamespace new.
rbClass := mock mockOf: RBClass.
rbClass model: model.
"Created: / 30-09-2014 / 19:36:05 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
"Modified: / 05-10-2014 / 00:27:06 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
tearDown
mock unmockAll
"Created: / 30-09-2014 / 19:44:27 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
! !
!CustomRBClassTests methodsFor:'tests'!
test_compile_for_class
| lastChange savedRbClass |
rbClass
name: #SomeClass;
superclassName: #Object;
instVarNames: #('inst1' 'inst2');
classVariableNames: #('Cls1');
poolDictionaryNames: (Array with: 'poolDict1');
category: 'Some-Test-Category';
compile.
model changes do: [ :change |
lastChange := change
].
savedRbClass := model classNamed: #SomeClass.
self assert: (lastChange isKindOf: AddClassChange).
self assert: (lastChange changeClassName) = #SomeClass.
self assert: (lastChange category) = 'Some-Test-Category'.
self assert: (lastChange classVariableNames) = (OrderedCollection newFrom: #('Cls1')).
self assert: (lastChange instanceVariableNames) = (OrderedCollection newFrom: #('inst1' 'inst2')).
self assert: (lastChange poolDictionaryNames) = (OrderedCollection newFrom: #('poolDict1')).
self assert: (lastChange superclassName) = #Object.
self assert: (savedRbClass isKindOf: RBClass).
self assert: (savedRbClass name) = #SomeClass.
self assert: (savedRbClass category) = 'Some-Test-Category'.
self assert: (savedRbClass classVariableNames) = (OrderedCollection newFrom: #('Cls1')).
self assert: (savedRbClass instanceVariableNames) = (OrderedCollection newFrom: #('inst1' 'inst2')).
self assert: (savedRbClass poolDictionaryNames) = (OrderedCollection newFrom: #('poolDict1')).
self assert: (savedRbClass superclass name) = #Object.
"Created: / 05-10-2014 / 00:27:50 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
"Modified: / 05-10-2014 / 12:09:04 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
test_compile_for_class_with_set_package
| lastChange savedRbClass |
rbClass
name: #SomeClass;
superclassName: #Object;
instVarNames: #('inst1' 'inst2');
classVariableNames: #('Cls1');
poolDictionaryNames: (Array with: 'poolDict1');
category: 'Some-Test-Category';
package: 'some_package';
compile.
model changes do: [ :change |
lastChange := change
].
savedRbClass := model classNamed: #SomeClass.
self assert: (lastChange isKindOf: AddClassChange).
self assert: (lastChange changeClassName) = #SomeClass.
self assert: (lastChange category) = 'Some-Test-Category'.
self assert: (lastChange classVariableNames) = (OrderedCollection newFrom: #('Cls1')).
self assert: (lastChange instanceVariableNames) = (OrderedCollection newFrom: #('inst1' 'inst2')).
self assert: (lastChange poolDictionaryNames) = (OrderedCollection newFrom: #('poolDict1')).
self assert: (lastChange superclassName) = #Object.
self assert: (lastChange package) = 'some_package'.
self assert: (savedRbClass isKindOf: RBClass).
self assert: (savedRbClass name) = #SomeClass.
self assert: (savedRbClass category) = 'Some-Test-Category'.
self assert: (savedRbClass classVariableNames) = (OrderedCollection newFrom: #('Cls1')).
self assert: (savedRbClass instanceVariableNames) = (OrderedCollection newFrom: #('inst1' 'inst2')).
self assert: (savedRbClass poolDictionaryNames) = (OrderedCollection newFrom: #('poolDict1')).
self assert: (savedRbClass superclass name) = #Object.
self assert: (savedRbClass package) = 'some_package'.
"Created: / 09-10-2014 / 23:41:34 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
test_compile_for_real_class_with_set_package
| lastChange savedRbClass expectedPackage |
expectedPackage := self class package deepCopy.
self assert: expectedPackage size > 0.
rbClass := RBClass existingNamed: self class name.
rbClass
model: model;
compile.
model changes do: [ :change |
lastChange := change
].
savedRbClass := model classNamed: self class name.
self assert: (lastChange isKindOf: AddClassChange).
self assert: (lastChange package) = expectedPackage.
self assert: (savedRbClass isKindOf: RBClass).
self assert: (savedRbClass package) = expectedPackage.
"Created: / 09-10-2014 / 23:54:35 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
test_real_class_with_set_package
| lastChange savedRbClass expectedPackage |
expectedPackage := self class package deepCopy.
self assert: expectedPackage size > 0.
rbClass := RBClass existingNamed: self class name.
model changes do: [ :change |
lastChange := change
].
savedRbClass := model classNamed: self class name.
self assert: (savedRbClass isKindOf: RBClass).
self assert: (savedRbClass package) = expectedPackage.
"Created: / 09-10-2014 / 23:58:59 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
test_the_metaclass_for_new_class
| expectedMetaName actualMetaName |
"Should be 'SomeTestClass class', but if we change it
then some could be broken"
expectedMetaName := #SomeTestClass.
rbClass
name: #SomeTestClass;
classVariableNames: #();
poolDictionaryNames: #();
compile.
actualMetaName := rbClass theMetaclass name.
self assert: expectedMetaName = actualMetaName
"Created: / 08-10-2014 / 12:06:30 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
test_the_metaclass_for_real_class
| expectedMetaName actualMetaName |
"Should be 'SomeTestClass class', but if we change it
then some could be broken"
expectedMetaName := #Object.
rbClass
realName: #Object;
name: #Object;
compile.
actualMetaName := rbClass theMetaclass name.
self assert: expectedMetaName = actualMetaName
"Created: / 08-10-2014 / 12:16:59 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
"Modified: / 08-10-2014 / 13:42:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
! !