SystemOrganization addCategory: #'Refactoring-Tests-Changes'! TestCase subclass: #RefactoringChangeTests instanceVariableNames: 'changes' classVariableNames: '' poolDictionaries: '' category: 'Refactoring-Tests-Changes'! !RefactoringChangeTests class methodsFor: 'accessing' stamp: 'lr 9/5/2010 19:39'! packageNamesUnderTest ^ #('Refactoring-Changes')! ! !RefactoringChangeTests methodsFor: 'utilities' stamp: 'lr 9/5/2010 19:51'! equalityTestFor: aChange self assert: aChange = aChange. self assert: aChange hash = aChange hash! ! !RefactoringChangeTests methodsFor: 'running' stamp: 'lr 9/5/2010 19:10'! setUp super setUp. changes := CompositeRefactoryChange named: 'testing'! ! !RefactoringChangeTests methodsFor: 'utilities' stamp: 'lr 9/5/2010 20:07'! stringTestFor: aChange self assert: (aChange name isString and: [ aChange name notEmpty ]). self assert: (aChange printString isString and: [ aChange printString notEmpty ]). self assert: (aChange changeString isString and: [ aChange changeString notEmpty ]). self assert: (aChange displayString isString and: [ aChange displayString notEmpty ])! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:31'! testAddClass | change | change := changes defineClass: 'TestCase subclass: #' , self class name , ' instanceVariableNames: ''instVar'' classVariableNames: ''ClassVar'' poolDictionaries: ''PoolDict'' category: ''' , self class category , ''''. self assert: change superclassName = self class superclass name. self assert: change changeClassName = self class name. self assert: change instanceVariableNames size = 1. self assert: change instanceVariableNames first = 'instVar'. self assert: change classVariableNames size = 1. self assert: change classVariableNames first = 'ClassVar'. self assert: change poolDictionaryNames size = 1. self assert: change poolDictionaryNames first = 'PoolDict'. self assert: change category = self class category. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:35'! testAddClassVariable | change | change := changes addClassVariable: 'ClassVar' to: self class. self assert: change changeClassName = self class name. self assert: change variable = 'ClassVar'. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:36'! testAddInstanceVariable | change | change := changes addInstanceVariable: 'instVar' to: self class. self assert: change changeClassName = self class name. self assert: change variable = 'instVar'. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:36'! testAddPool | change | change := changes addPool: 'PoolDict' to: self class. self assert: change changeClassName = self class name. self assert: change variable = 'PoolDict'. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:39'! testComment | change | change := changes comment: 'Some Comment' in: self class. self assert: change changeClassName = self class name. self assert: change comment = 'Some Comment'. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:42'! testCompileIn | change | change := changes compile: 'setUp' in: self class. self assert: change changeClassName = self class name. self assert: change selector = #setUp. self assert: change source = 'setUp'. self assert: change protocol = #running. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:42'! testCompileInClassified | change | change := changes compile: 'setUp' in: self class classified: #accessing. self assert: change changeClassName = self class name. self assert: change selector = #setUp. self assert: change source = 'setUp'. self assert: change protocol = #accessing. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:32'! testRemoveClass | change | change := changes removeClass: self class. self assert: change changeClassName = self class name. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:33'! testRemoveClassNamed | change | change := changes removeClassNamed: self class name. self assert: change changeClassName = self class name. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:35'! testRemoveClassVariable | change | change := changes removeClassVariable: 'ClassVar' from: self class. self assert: change changeClassName = self class name. self assert: change variable = 'ClassVar'. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:36'! testRemoveInstanceVariable | change | change := changes removeInstanceVariable: 'instVar' from: self class. self assert: change changeClassName = self class name. self assert: change variable = 'instVar'. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:43'! testRemoveMethod | change | change := changes removeMethod: #setUp from: self class. self assert: change changeClassName = self class name. self assert: change selector = #setUp. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:38'! testRemovePool | change | change := changes removePool: 'PoolDict' from: self class. self assert: change changeClassName = self class name. self assert: change variable = 'PoolDict'. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 19:46'! testRenameClass | change | change := changes renameClass: self class to: self class name , 'Plus'. self assert: change oldName = self class name. self assert: change newName = (self class name , 'Plus'). self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 20:02'! testRenameClassVariable | change | change := changes renameClassVariable: 'ClassVar1' to: 'ClassVar2' in: self class. self assert: change changeClassName = self class name. self assert: change oldName = 'ClassVar1'. self assert: change newName = 'ClassVar2'. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'tests' stamp: 'lr 9/5/2010 20:02'! testRenameInstanceVariable | change | change := changes renameInstanceVariable: 'instVar1' to: 'instVar2' in: self class. self assert: change changeClassName = self class name. self assert: change oldName = 'instVar1'. self assert: change newName = 'instVar2'. self universalTestFor: change! ! !RefactoringChangeTests methodsFor: 'utilities' stamp: 'lr 9/5/2010 20:06'! undoTestFor: aChange | undo | undo := aChange asUndoOperation. self assert: (undo isKindOf: RefactoryChange)! ! !RefactoringChangeTests methodsFor: 'utilities' stamp: 'lr 9/5/2010 20:00'! universalTestFor: aChange self equalityTestFor: aChange. self stringTestFor: aChange. (aChange isKindOf: RefactoryClassChange) ifTrue: [ self undoTestFor: aChange ]! !