-
-
Notifications
You must be signed in to change notification settings - Fork 353
/
MetacelloScriptingTestCase.class.st
106 lines (98 loc) · 3.84 KB
/
MetacelloScriptingTestCase.class.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
"
##MetacelloScriptingTestCase
**MetacelloScriptingTestCase** implements the test suite that validates the **Metacello** scripting API.
"
Class {
#name : #MetacelloScriptingTestCase,
#superclass : #MetacelloScriptingStdTstHarnessTestCase,
#instVars : [
'externalRepository',
'mczConfigurationRepository',
'configurationDirectory',
'externalDirectory',
'sampleDirectory',
'configurationRepository',
'monticelloRepository'
],
#category : #'Metacello-TestsMC'
}
{ #category : #accessing }
MetacelloScriptingTestCase >> configurationPath [
^ 'metacello-tests/configuration'
]
{ #category : #accessing }
MetacelloScriptingTestCase >> externalPath [
^ 'metacello-tests/external'
]
{ #category : #accessing }
MetacelloScriptingTestCase >> samplePath [
^ 'metacello-tests/sample'
]
{ #category : #running }
MetacelloScriptingTestCase >> setUpRepositories [
| defaultDirectory |
super setUpRepositories.
defaultDirectory := MetacelloPlatform current defaultDirectory.
configurationDirectory := MetacelloPlatform current
directoryFromPath: self configurationPath
relativeTo: defaultDirectory.
externalDirectory := MetacelloPlatform current
directoryFromPath: self externalPath
relativeTo: defaultDirectory.
sampleDirectory := MetacelloPlatform current
directoryFromPath: self samplePath
relativeTo: defaultDirectory.
configurationDirectory exists
ifTrue: [ MetacelloPlatform current recursiveDelete: configurationDirectory ].
MetacelloPlatform current ensureDirectoryExists: configurationDirectory.
externalDirectory exists
ifTrue: [ MetacelloPlatform current recursiveDelete: externalDirectory ].
MetacelloPlatform current ensureDirectoryExists: externalDirectory.
sampleDirectory exists
ifTrue: [ MetacelloPlatform current recursiveDelete: sampleDirectory ].
MetacelloPlatform current ensureDirectoryExists: sampleDirectory.
configurationRepository := MetacelloScriptingResource current
configurationRepository.
externalRepository := MetacelloScriptingResource current externalRepository.
Smalltalk
at: 'Metacello_Configuration_Test_Repository' asSymbol
put: externalRepository.
monticelloRepository := MetacelloMonticelloResource current
monticelloRepository.
Smalltalk
at: 'Metacello_Gofer_Test_Repository' asSymbol
put: monticelloRepository.
mczConfigurationRepository := MetacelloConfigurationResource current
monticelloRepository.
Smalltalk
at: 'Metacello_MczConfiguration_Test_Repository' asSymbol
put: mczConfigurationRepository
]
{ #category : #running }
MetacelloScriptingTestCase >> setUpRepositoryContents: packageList sourceRepo: sourceRepo targetRepo: targetRepo [
packageList
do: [ :package |
| versionInfo |
versionInfo := sourceRepo versionInfoFromVersionNamed: package.
targetRepo storeVersion: (sourceRepo versionWithInfo: versionInfo ifAbsent: [ self assert: false ]) ]
]
{ #category : #running }
MetacelloScriptingTestCase >> tearDownRepositories [
super tearDownRepositories.
configurationDirectory exists
ifTrue: [ MetacelloPlatform current recursiveDelete: configurationDirectory ].
externalDirectory exists
ifTrue: [ MetacelloPlatform current recursiveDelete: externalDirectory ].
sampleDirectory exists
ifTrue: [ MetacelloPlatform current recursiveDelete: sampleDirectory ].
Smalltalk globals removeKey: #'Metacello_Configuration_Test_Repository' ifAbsent: [ ].
Smalltalk globals removeKey: #'Metacello_Gofer_Test_Repository' ifAbsent: [ ].
Smalltalk globals
removeKey: #'Metacello_MczConfiguration_Test_Repository'
ifAbsent: [ ].
MCRepositoryGroup default
removeIdenticalRepository: externalRepository;
removeIdenticalRepository: monticelloRepository;
removeIdenticalRepository: mczConfigurationRepository;
removeIdenticalRepository: configurationRepository
]