'From Cuis 2.0 of 4 January 2010 [latest update: #393] on 2 February 2010 at 9:28:06 am'!

!TestCase methodsFor: 'Private' stamp: 'jmv 2/2/2010 09:23'!
performTest

	self perform: testSelector asSymbol
			! !


!TestCase class methodsFor: 'Accessing' stamp: 'jmv 2/2/2010 09:23'!
testSelectors

	^(self selectors asArray select: [ :each | 
		(each beginsWith: 'test') and: [ each numArgs isZero ] ]) sort! !

!TestCase class methodsFor: 'Testing' stamp: 'jmv 2/2/2010 09:27'!
isAbstract
	"Override to true if a TestCase subclass is Abstract and should not have
	TestCase instances built from it"

	^self name = #TestCase
			! !

!TestCase class methodsFor: 'accessing' stamp: 'ul 12/4/2009 03:44'!
allTestSelectors

	^(self allSelectors asArray select: [ :each | 
		(each beginsWith: 'test') and: [ each numArgs isZero ] ]) sort
			! !


!TestResource class methodsFor: 'Testing' stamp: 'jmv 2/2/2010 09:27'!
isAbstract
	"Override to true if a TestResource subclass is Abstract and should not have
	TestCase instances built from it"

	^self name = #TestResource
			! !


!TestRunner methodsFor: 'processing' stamp: 'jmv 2/2/2010 09:26'!
addTestsFor: testName toSuite: suite 
	| cls |
	(testName indexOf: $() > 0
		ifFalse: [
			cls _ SUnitNameResolver classNamed: testName asSymbol.
			cls isAbstract
				ifTrue: [cls allSubclasses
						do: [:each | each isAbstract
								ifFalse: [each addToSuiteFromSelectors: suite]]]
				ifFalse: [cls addToSuiteFromSelectors: suite]].
	^ suite! !


!TestSuite methodsFor: 'Dependencies' stamp: 'jmv 2/2/2010 09:25'!
addDependentToHierachy: anObject
	self addDependent: anObject.
	self tests do: [ :each | each addDependentToHierachy: anObject]! !

!TestSuite methodsFor: 'Dependencies' stamp: 'jmv 2/2/2010 09:25'!
removeDependentFromHierachy: anObject
	self removeDependent: anObject.
	self tests do: [ :each | each removeDependentFromHierachy: anObject]
			! !

!TestSuite methodsFor: 'Running' stamp: 'jmv 2/2/2010 09:25'!
run: aResult 
	self tests do: [:each | 
		self changed: each.
		each run: aResult]
			! !

Symbol removeSelector: #sunitAsClass!

!Symbol reorganize!
('accessing' at:put: precedence replaceFrom:to:with:startingAt:)
('comparing' =)
('copying' clone copy shallowCopy veryDeepCopyWith:)
('converting' asString asSymbol capitalized)
('printing' storeOn:)
('system primitives' flushCache numArgs:)
('private' errorNoModification species string: stringhash)
('testing' isDoIt isInfix isKeyword isLiteral isPvtSelector isSymbol isUnary)
('user interface' asExplorerString)
!

String removeSelector: #sunitAsSymbol!
String removeSelector: #sunitMatch:!
String removeSelector: #sunitSubStrings!

!String reorganize!
('accessing' at: at:put: byteAt: byteAt:put: byteSize do:toFieldNumber: endsWithDigit findAnySubStr:startingAt: findBetweenSubStrs: findCloseParenthesisFor: findDelimiters:startingAt: findString: findString:startingAt: findString:startingAt:caseSensitive: findTokens: findTokens:includes: findTokens:keep: findWordStart:startingAt: includesSubString: includesSubstring:caseSensitive: indexOf: indexOf:startingAt: indexOf:startingAt:ifAbsent: indexOfAnyOf: indexOfAnyOf:ifAbsent: indexOfAnyOf:startingAt: indexOfAnyOf:startingAt:ifAbsent: indexOfSubCollection:startingAt:ifAbsent: lastIndexOfPKSignature: lineCorrespondingToIndex: lineCount lineNumber: linesDo: skipAnySubStr:startingAt: skipDelimiters:startingAt: startsWithDigit tabDelimitedFieldsDo:)
('comparing' < <= = > >= alike: beginsWith: caseInsensitiveLessOrEqual: caseSensitiveLessOrEqual: charactersExactlyMatching: compare: crc16 endsWith: endsWithAnyOf: hash howManyMatch: match: sameAs: startingAt:match:startingAt:)
('copying' copyReplaceTokens:with: deepCopy padded:to:with:)
('converting' adaptToCollection:andSend: adaptToNumber:andSend: adaptToPoint:andSend: adaptToString:andSend: asCharacter asDate asDateAndTime asDuration asFileName asFourCode asHex asIdentifier: asInteger asLegalSelector asLowercase asMorph asNumber asPacked asSignedInteger asSmalltalkComment asString asStringOrText asSymbol asText asTime asTimeStamp asUppercase capitalized compressWithTable: contractTo: correctAgainst: correctAgainst:continuedFrom: correctAgainstDictionary:continuedFrom: findSelector initialIntegerOrNil keywords latin1ToMacRoman latin1ToUtf8 macRomanToLatin1 numericSuffix onlyLetters openAsMorph periodPrefixAndSuffix romanNumber sansPeriodSuffix splitInteger stemAndNumericSuffix substrings surroundedBySingleQuotes translateFrom:to:table: translateToLowercase translateToUppercase translateWith: truncateTo: truncateWithElipsisTo: unparenthetically unzipped utf8ToLatin1 withBlanksCondensed withBlanksTrimmed withFirstCharacterDownshifted withNoLineLongerThan: withSeparatorsCompacted withoutLeadingDigits withoutTrailingBlanks withoutTrailingDigits)
('displaying' displayAt: displayOn: displayOn:at: displayOn:at:textColor: displayProgressAt:from:to:during:)
('printing' encodeDoublingQuoteOn: isLiteral printOn: storeOn: stringRepresentation)
('private' correctAgainstEnumerator:continuedFrom: evaluateExpression:parameters: getEnclosedExpressionFrom: replaceFrom:to:with:startingAt: stringhash)
('system primitives' compare:with:collated: findSubstring:in:startingAt:matchTable: numArgs)
('Celeste' withCRs)
('internet' decodeMimeHeader decodeQuotedPrintable unescapePercents withInternetLineEndings withSqueakLineEndings withoutQuoting)
('testing' hasContentsInExplorer isAllDigits isAllSeparators isOctetString isString lastSpacePosition)
('paragraph support' encompassParagraph: indentationIfBlank:)
('arithmetic' * + - / // \\)
('filter streaming' putOn:)
('encoding' getInteger32: putInteger32:at:)
('user interface' asExplorerString edit)
('translating' translated)
('formatting' format:)
('*swhttpclient' trimBlanks)
!

Class removeSelector: #sunitName!

!Class reorganize!
('initialize-release' declare: obsolete removeFromSystem removeFromSystem: removeFromSystemUnlogged sharing: superclass:methodDict:format:name:organization:instVarNames:classPool:sharedPools: superclass:methodDictionary:format: unload)
('accessing' classPool classPoolFrom: name)
('testing' hasMethods isObsolete)
('copying' copy)
('class name' externalName rename:)
('instance variables' addInstVarName: removeInstVarName:)
('class variables' addClassVarName: allClassVarNames classVarNames ensureClassPool removeClassVarName:)
('pool variables' addSharedPool: allSharedPools removeSharedPool: sharedPools)
('compiling' binding bindingOf: canFindWithoutEnvironment: compileAll compileAllFrom: possibleVariablesFor:continuedFrom:)
('subclass creation' subclass:instanceVariableNames:classVariableNames:poolDictionaries:category: variableByteSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category: variableSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category: variableWordSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category: weakSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category:)
('fileIn/Out' fileOut fileOutInitializerOn: fileOutOn:moveSource:toFile: fileOutOn:moveSource:toFile:initializing: fileOutPool:onFileStream: fileOutSharedPoolsOn: objectForDataStream: reformatAll removeFromChanges shouldFileOutPool: shouldFileOutPools storeDataOn:)
('accessing class hierarchy' addSubclass: removeSubclass: subclasses subclassesDo: subclassesDoGently:)
('private' setName: spaceUsed)
!

Behavior removeSelector: #sunitAllSelectors!
Behavior removeSelector: #sunitSelectors!
Object removeSelector: #sunitAddDependent:!
Object removeSelector: #sunitChanged:!
Object removeSelector: #sunitRemoveDependent:!

!Object reorganize!
('*tools-browser' browse browseHierarchy)
('Breakpoint' break)
('accessing' addInstanceVarNamed:withValue: at: at:modify: at:put: basicAt: basicAt:put: basicSize customizeExplorerContents readFromString: size yourself)
('as yet unclassified' revisar)
('associating' ->)
('binding' bindingOf:)
('casing' caseOf: caseOf:otherwise:)
('class membership' class inheritsFromAnyIn: isKindOf: isMemberOf: respondsTo: xxxClass)
('comparing' = closeTo: hash identityHashPrintString literalEqual: ~=)
('converting' adaptToFloat:andSend: adaptToFraction:andSend: adaptToInteger:andSend: as: asOrderedCollection asString asStringOrText complexContents mustBeBoolean mustBeBooleanIn: printDirectlyToDisplay withoutListWrapper)
('copying' clone copy copyAddedStateFrom: copyFrom: copySameFrom: copyTwoLevel deepCopy postCopy shallowCopy veryDeepCopy veryDeepCopyUsing: veryDeepCopyWith: veryDeepFixupWith: veryDeepInner:)
('creation' asMorph openAsMorph)
('dependents access' addDependent: breakDependents canDiscardEdits dependents hasUnacceptedEdits myDependents myDependents: removeDependent:)
('drag and drop' acceptDroppingMorph:event:inMorph: dragAnimationFor:transferMorph: dragTransferType)
('error handling' assert: caseError confirm: confirm:orCancel: deprecated: deprecated:block: deprecated:explanation: deprecatedExplanation: doesNotUnderstand: error: halt halt: handles: notify:at: notifyWithLabel: primitiveFailed shouldBeImplemented shouldNotImplement subclassResponsibility)
('evaluating' value valueWithArguments:)
('events-accessing' actionForEvent: actionMap actionSequenceForEvent: actionsDo: hasActionForEvent: setActionSequence:forEvent: updateableActionMap)
('events-registering' when:evaluate: when:send:to: when:send:to:with: when:send:to:withArguments:)
('events-removing' releaseActionMap removeAction:forEvent: removeActionsForEvent: removeActionsSatisfying: removeActionsSatisfying:forEvent: removeActionsWithReceiver: removeActionsWithReceiver:forEvent:)
('events-triggering' triggerEvent: triggerEvent:with: triggerEvent:withArguments:)
('filter streaming' putOn:)
('finalization' actAsExecutor executor finalizationRegistry finalize retryWithGC:until: toFinalizeSend:to:with:)
('flagging' isThisEverCalled isThisEverCalled: logEntry logExecution logExit)
('inspecting' basicInspect inspect inspectorClass)
('macpal' contentsChanged currentEvent currentHand currentWorld flash instanceVariableValues playSoundNamed: refusesToAcceptCode)
('message handling' disableCode: perform: perform:orSendTo: perform:with: perform:with:with: perform:with:with:with: perform:withArguments: perform:withArguments:inSuperclass: withArgs:executeMethod:)
('objects from disk' comeFullyUpOnReload: convertToCurrentVersion:refStream: indexIfCompact objectForDataStream: readDataFrom:size: storeDataOn:)
('printing' fullPrintString isLiteral longPrintOn: longPrintOn:limitedTo:indent: longPrintString longPrintStringLimitedTo: nominallyUnsent: print printOn: printString printStringLimitedTo: printWithClosureAnalysisOn: storeOn: storeString stringForReadout stringRepresentation)
('scripting' defaultFloatPrecisionFor:)
('system primitives' becomeForward: becomeForward:copyHash: className instVarAt: instVarAt:put: instVarNamed: instVarNamed:put: primitiveChangeClassTo: rootStubInImageSegment: someObject)
('testing' is: isArray isBehavior isBlock isClosure isCollection isColor isColorForm isCompiledMethod isFloat isForm isFraction isHeap isInteger isInterval isMessageSend isMethodProperties isMorph isMorphicEvent isNumber isPoint isPseudoContext isStream isString isSymbol isSystemWindow isText isTransparent isVariableBinding name renameTo: showDiffs stepAt:in: stepIn: stepTime stepTimeIn: wantsDiffFeedback wantsSteps wantsStepsIn:)
('translation support' inline: var:declareC:)
('updating' changed changed: changed:with: noteSelectionIndex:for: okToChange update: update:with: windowIsClosing)
('user interface' addModelItemsToWindowMenu: asExplorerString beep defaultLabelForInspector explore hasContentsInExplorer inform: initialExtent inspectWithLabel: modelSleep modelWakeUp modelWakeUpIn: notYetImplemented)
('viewer' externalName)
('private' errorImproperStore errorNonIntegerIndex errorNotIndexable errorSubscriptBounds: primitiveError: species storeAt:inTempFrame:)
('nil' notify:)
!

