229
|
1 |
"{ Package: 'stx:goodies/monticello' }"
|
|
2 |
|
|
3 |
TestCase subclass:#MCTestCase
|
|
4 |
instanceVariableNames:''
|
|
5 |
classVariableNames:''
|
|
6 |
poolDictionaries:''
|
|
7 |
category:'Monticello-Tests'
|
|
8 |
!
|
|
9 |
|
|
10 |
|
|
11 |
!MCTestCase class methodsFor:'as yet unclassified'!
|
|
12 |
|
|
13 |
isAbstract
|
|
14 |
^ self = MCTestCase
|
|
15 |
!
|
|
16 |
|
|
17 |
resources
|
|
18 |
^ Array with: MCSnapshotResource
|
|
19 |
! !
|
|
20 |
|
|
21 |
!MCTestCase methodsFor:'asserting'!
|
|
22 |
|
|
23 |
assertPackage: actual matches: expected
|
|
24 |
self assert: actual = expected
|
|
25 |
|
|
26 |
!
|
|
27 |
|
|
28 |
assertSnapshot: actual matches: expected
|
|
29 |
| diff |
|
|
30 |
diff := actual patchRelativeToBase: expected.
|
|
31 |
self assert: diff isEmpty
|
|
32 |
|
|
33 |
!
|
|
34 |
|
|
35 |
assertVersion: actual matches: expected
|
|
36 |
self assertPackage: actual package matches: expected package.
|
|
37 |
self assertVersionInfo: actual info matches: expected info.
|
|
38 |
self assertSnapshot: actual snapshot matches: expected snapshot.
|
|
39 |
!
|
|
40 |
|
|
41 |
assertVersionInfo: actual matches: expected
|
|
42 |
self assert: actual name = expected name.
|
|
43 |
self assert: actual message = expected message.
|
|
44 |
self assert: actual ancestors size = expected ancestors size.
|
|
45 |
actual ancestors with: expected ancestors do: [:a :e | self assertVersionInfo: a matches: e]
|
|
46 |
|
|
47 |
! !
|
|
48 |
|
|
49 |
!MCTestCase methodsFor:'compiling'!
|
|
50 |
|
|
51 |
change: aSelector toReturn: anObject
|
|
52 |
self
|
|
53 |
compileClass: self mockClassA
|
|
54 |
source: aSelector, ' ^ ', anObject storeString
|
|
55 |
category: 'numeric'
|
|
56 |
|
|
57 |
"Modified: / 13-09-2010 / 12:06:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
|
|
58 |
!
|
|
59 |
|
|
60 |
compileClass: aClass source: source category: category
|
|
61 |
aClass compileSilently: source classified: category
|
|
62 |
!
|
|
63 |
|
|
64 |
restoreMocks
|
|
65 |
self mockSnapshot updatePackage: self mockPackage
|
|
66 |
! !
|
|
67 |
|
|
68 |
!MCTestCase methodsFor:'mocks'!
|
|
69 |
|
|
70 |
commentForClass: name
|
|
71 |
^ 'This is a comment for ', name
|
|
72 |
!
|
|
73 |
|
|
74 |
commentStampForClass: name
|
|
75 |
^ 'tester-', name, ' 1/1/2000 00:00'
|
|
76 |
!
|
|
77 |
|
|
78 |
mockCategoryName
|
|
79 |
^ 'Monticello-Mocks'
|
|
80 |
!
|
|
81 |
|
|
82 |
mockClass: className super: superclassName
|
|
83 |
^ MCClassDefinition
|
|
84 |
name: className
|
|
85 |
superclassName: superclassName
|
|
86 |
category: self mockCategoryName
|
|
87 |
instVarNames: #()
|
|
88 |
classVarNames: #()
|
|
89 |
poolDictionaryNames: #()
|
|
90 |
classInstVarNames: #()
|
|
91 |
type: #normal
|
|
92 |
comment: (self commentForClass: className)
|
|
93 |
commentStamp: (self commentStampForClass: className)
|
|
94 |
!
|
|
95 |
|
|
96 |
mockClassA
|
|
97 |
^ Smalltalk at: #MCMockClassA
|
|
98 |
!
|
|
99 |
|
|
100 |
mockClassB
|
|
101 |
^ Smalltalk at: #MCMockClassB
|
|
102 |
!
|
|
103 |
|
|
104 |
mockDependencies
|
|
105 |
^ Array with: (MCVersionDependency package: self mockEmptyPackage info: (self mockVersionInfo: 'x'))
|
|
106 |
!
|
|
107 |
|
|
108 |
mockEmptyPackage
|
|
109 |
^ MCPackage named: (MCEmptyPackageInfo new packageName)
|
|
110 |
!
|
|
111 |
|
|
112 |
mockExtensionMethodCategory
|
|
113 |
^ MCMockPackageInfo new methodCategoryPrefix.
|
|
114 |
!
|
|
115 |
|
|
116 |
mockInstanceA
|
|
117 |
^ self mockClassA new
|
|
118 |
!
|
|
119 |
|
|
120 |
mockMessageString
|
|
121 |
^ 'A version generated for testing purposes.'
|
|
122 |
!
|
|
123 |
|
|
124 |
mockMethod: aSymbol class: className source: sourceString meta: aBoolean
|
|
125 |
^ MCMethodDefinition
|
|
126 |
className: className
|
|
127 |
classIsMeta: aBoolean
|
|
128 |
selector: aSymbol
|
|
129 |
category: 'as yet unclassified'
|
|
130 |
timeStamp: ''
|
|
131 |
source: sourceString
|
|
132 |
!
|
|
133 |
|
|
134 |
mockOverrideMethodCategory
|
|
135 |
^ self mockExtensionMethodCategory, '-override'
|
|
136 |
!
|
|
137 |
|
|
138 |
mockPackage
|
|
139 |
^ MCSnapshotResource mockPackage
|
|
140 |
!
|
|
141 |
|
|
142 |
mockSnapshot
|
|
143 |
^ MCSnapshotResource current snapshot
|
|
144 |
!
|
|
145 |
|
|
146 |
mockToken: aSymbol
|
|
147 |
^ MCMockDefinition token: aSymbol
|
|
148 |
!
|
|
149 |
|
|
150 |
mockVersion
|
|
151 |
^ MCVersion
|
|
152 |
package: self mockPackage
|
|
153 |
info: self mockVersionInfo
|
|
154 |
snapshot: self mockSnapshot
|
|
155 |
!
|
|
156 |
|
|
157 |
mockVersionInfo
|
|
158 |
^ self treeFrom: #(d ((b ((a))) (c)))
|
|
159 |
!
|
|
160 |
|
|
161 |
mockVersionInfo: tag
|
|
162 |
^ MCVersionInfo
|
|
163 |
name: self mockVersionName, '-', tag asString
|
|
164 |
id: UUID new
|
|
165 |
message: self mockMessageString, '-', tag asString
|
|
166 |
date: Date today
|
|
167 |
time: Time now
|
|
168 |
author: Author initials
|
|
169 |
ancestors: #()
|
|
170 |
|
|
171 |
!
|
|
172 |
|
|
173 |
mockVersionInfoWithAncestor: aVersionInfo
|
|
174 |
^ MCVersionInfo
|
|
175 |
name: aVersionInfo name, '-child'
|
|
176 |
id: UUID new
|
|
177 |
message: self mockMessageString
|
|
178 |
date: Date today
|
|
179 |
time: Time now
|
|
180 |
author: Author initials
|
|
181 |
ancestors: {aVersionInfo}
|
|
182 |
|
|
183 |
!
|
|
184 |
|
|
185 |
mockVersionName
|
|
186 |
^ 'MonticelloTest-xxx.1'
|
|
187 |
!
|
|
188 |
|
|
189 |
mockVersionWithAncestor: aMCVersion
|
|
190 |
^ MCVersion
|
|
191 |
package: self mockPackage
|
|
192 |
info: (self mockVersionInfoWithAncestor: aMCVersion info)
|
|
193 |
snapshot: self mockSnapshot
|
|
194 |
!
|
|
195 |
|
|
196 |
mockVersionWithDependencies
|
|
197 |
^ MCVersion
|
|
198 |
package: self mockPackage
|
|
199 |
info: self mockVersionInfo
|
|
200 |
snapshot: self mockSnapshot
|
|
201 |
dependencies: self mockDependencies
|
|
202 |
!
|
|
203 |
|
|
204 |
treeFrom: anArray
|
|
205 |
| name id |
|
|
206 |
name := anArray first.
|
|
207 |
id := '00000000-0000-0000-0000-0000000000', (name asString size = 1 ifTrue: [name asString, '0'] ifFalse: [name asString]).
|
|
208 |
^ MCVersionInfo
|
|
209 |
name: name
|
|
210 |
id: (UUID fromString: id)
|
|
211 |
message: ''
|
|
212 |
date: nil
|
|
213 |
time: nil
|
|
214 |
author: ''
|
|
215 |
ancestors: (anArray size > 1 ifTrue: [(anArray second collect: [:ea | self treeFrom: ea])] ifFalse: [#()])
|
|
216 |
! !
|
|
217 |
|
|
218 |
!MCTestCase class methodsFor:'documentation'!
|
|
219 |
|
|
220 |
version
|
346
|
221 |
^ '$Header: /cvs/stx/stx/goodies/monticello/MCTestCase.st,v 1.2 2011-08-20 12:28:44 cg Exp $'
|
229
|
222 |
!
|
|
223 |
|
|
224 |
version_CVS
|
346
|
225 |
^ '$Header: /cvs/stx/stx/goodies/monticello/MCTestCase.st,v 1.2 2011-08-20 12:28:44 cg Exp $'
|
229
|
226 |
!
|
|
227 |
|
|
228 |
version_SVN
|
|
229 |
^ '§Id: MCTestCase.st 10 2010-09-13 11:28:19Z vranyj1 §'
|
|
230 |
! !
|