packages/AbstractTestCases.st
author james
Wed, 09 Apr 2003 14:30:18 +0200
changeset 1235 4dbb8a0a8e29
child 1274 9dd9784c811c
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1235
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
     1
"{ Package: 'stx:libbasic3' }"
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
     2
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
     3
"{ NameSpace: Packages }"
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
     4
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
     5
TestCase subclass:#AbstractTestCases
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
     6
	instanceVariableNames:''
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
     7
	classVariableNames:'ClearUpFiles'
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
     8
	poolDictionaries:''
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
     9
	category:'Package-TestCases'
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    10
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    11
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    12
Notification subclass:#PackageTestCaseNotification
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    13
	instanceVariableNames:''
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    14
	classVariableNames:''
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    15
	poolDictionaries:''
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    16
	privateIn:AbstractTestCases
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    17
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    18
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    19
!AbstractTestCases class methodsFor:'documentation'!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    20
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    21
documentation
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    22
"
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    23
    documentation to be added.
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    24
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    25
    [author:]
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    26
         (james@miraculix)
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    27
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    28
    [instance variables:]
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    29
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    30
    [class variables:]
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    31
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    32
    [see also:]
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    33
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    34
"
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    35
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    36
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    37
history
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    38
    "Created: / 30.1.2003 / 10:54:54 / james"
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    39
! !
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    40
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    41
!AbstractTestCases methodsFor:'factory'!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    42
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    43
packageTestCaseNotification
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    44
    ^ PackageTestCaseNotification
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    45
! !
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    46
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    47
!AbstractTestCases methodsFor:'helpers'!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    48
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    49
aDolphinTestFilePac
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    50
    ^ '~/AvatarChat.pac' asFilename.
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    51
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    52
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    53
assertSmalltalkIncludesAllClassNames:aCollectionOfSymbols 
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    54
    aCollectionOfSymbols do:[:aSymbol |
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    55
        self shouldnt:((Smalltalk at:aSymbol ifAbsent:[nil]) == nil).
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    56
    ].
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    57
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    58
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    59
assertSmalltalkIncludesAllLooseMethods:aCollectionOfLooseMethods
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    60
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    61
    aCollectionOfLooseMethods do:[:aPackagedMethod |   | class |
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    62
        class := (Smalltalk at:aPackagedMethod mclass name).
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    63
        self assert:(class methodDictionary keys includes:aPackagedMethod name).
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    64
    ].
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    65
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    66
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    67
createMethodFor:aClass source:aString
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    68
    aClass
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    69
        compile:aString
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    70
        classified:'aDummyClassification'
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    71
        notifying:nil.
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    72
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    73
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    74
createTestCaseDirectory
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    75
    "create the testcase directory if i"
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    76
    | testCaseDirectory |
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    77
    (testCaseDirectory := self testCaseDirectory) exists ifFalse:[
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    78
        testCaseDirectory makeDirectory.
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    79
    ].
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    80
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    81
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    82
createTestCaseFilenameFor:aFilenameOrString 
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    83
    ^ self testCaseDirectory filenameFor:aFilenameOrString asFilename
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    84
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    85
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    86
initializePackageManager
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    87
    PackageManager initialize.
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    88
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    89
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    90
packageManager
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    91
    ^ PackageManager smalltalkPackageManager
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    92
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    93
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    94
removeClassNamed:aSymbol 
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    95
    (Smalltalk at:aSymbol) ifNotNil:[
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    96
        ^ (Smalltalk at:aSymbol) removeFromSystem.
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    97
    ]
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    98
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
    99
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   100
shouldntSmalltalkIncludesAllClassNames:aCollectionOfSymbols 
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   101
    aCollectionOfSymbols do:[:aSymbol |
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   102
        self assert:((Smalltalk at:aSymbol ifAbsent:[nil]) == nil).
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   103
    ].
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   104
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   105
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   106
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   107
shouldntSmalltalkIncludesAllLooseMethods:aCollectionOfLooseMethods
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   108
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   109
    aCollectionOfLooseMethods do:[:aMethod |  | class|
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   110
        class := (Smalltalk classNamed:aMethod className).
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   111
        "if class is nil then the test has also passed"
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   112
        class ifNotNil:[
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   113
            self shouldnt:(class methodDictionary keys includes:aMethod name).
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   114
        ].
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   115
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   116
    ].
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   117
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   118
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   119
testCaseDirectory
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   120
    ^ (Filename named:'~/work/stx/testCases/')
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   121
! !
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   122
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   123
!AbstractTestCases methodsFor:'initialize / release'!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   124
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   125
setUp
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   126
    "common setup - invoked before testing"
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   127
    super setUp
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   128
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   129
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   130
tearDown
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   131
    "common cleanup - invoked after testing"
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   132
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   133
    super tearDown
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   134
! !
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   135
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   136
!AbstractTestCases methodsFor:'instance creation'!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   137
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   138
createClassNamed:aClassName 
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   139
    self createClassNamed:aClassName inheritsFrom:#Object
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   140
!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   141
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   142
createClassNamed:aClassName inheritsFrom:anInheritingClassName
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   143
    ^ (Smalltalk at:anInheritingClassName) 
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   144
        subclass:aClassName
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   145
        instanceVariableNames:''
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   146
        classVariableNames:''
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   147
        poolDictionaries:''
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   148
        category:'AAAAA'
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   149
        classInstanceVariableNames:''
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   150
! !
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   151
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   152
!AbstractTestCases methodsFor:'queries'!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   153
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   154
clearUpFiles
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   155
    ClearUpFiles ifNil:[
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   156
        ClearUpFiles := false.
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   157
    ].
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   158
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   159
    ^ ClearUpFiles
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   160
! !
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   161
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   162
!AbstractTestCases class methodsFor:'documentation'!
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   163
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   164
version
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   165
    ^ '$Header: /cvs/stx/stx/libbasic3/packages/AbstractTestCases.st,v 1.1 2003-04-09 12:30:18 james Exp $'
4dbb8a0a8e29 initial checkin
james
parents:
diff changeset
   166
! !