fiftyone.geolocation 4.2.1 → 4.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitmodules +3 -0
- package/README.md +2 -2
- package/ci/README.md +2 -0
- package/ci/build-and-test.yml +34 -0
- package/ci/common-ci/.github/labels.yml +59 -0
- package/ci/common-ci/.github/workflows/sync-labels.yml +49 -0
- package/ci/common-ci/CiTips.md +34 -0
- package/ci/common-ci/GitVersion.yml +18 -0
- package/ci/common-ci/LICENSE +286 -0
- package/ci/common-ci/README.md +365 -0
- package/ci/common-ci/build-and-test.yml +65 -0
- package/ci/common-ci/check-merge-commit-format.yml +50 -0
- package/ci/common-ci/cloud-release-config.json +51 -0
- package/ci/common-ci/create-tag.yml +41 -0
- package/ci/common-ci/deploy.yml +25 -0
- package/ci/common-ci/dotnet/shared-code-signing-steps.yml +20 -0
- package/ci/common-ci/dotnet/shared-extract-and-publish-packages.yml +29 -0
- package/ci/common-ci/go/shared-go-list-stage.yml +64 -0
- package/ci/common-ci/java/readme.md +22 -0
- package/ci/common-ci/java/shared-code-signing-steps.yml +17 -0
- package/ci/common-ci/node/shared-extract-and-publish-packages.yml +26 -0
- package/ci/common-ci/php/readme.md +15 -0
- package/ci/common-ci/release-config-schema.json +52 -0
- package/ci/common-ci/release-config-template.json +310 -0
- package/ci/common-ci/release-config.json +128 -0
- package/ci/common-ci/release-process.drawio +165 -0
- package/ci/common-ci/release-process.png +0 -0
- package/ci/common-ci/scripts/azure/checkSlot.ps1 +28 -0
- package/ci/common-ci/scripts/modules/51DAuthorizationModule/51DAuthorizationModule.Tests.ps1 +1 -0
- package/ci/common-ci/scripts/modules/51DAuthorizationModule/51DAuthorizationModule.psm1 +16 -0
- package/ci/common-ci/scripts/modules/51DBuildModule/51DBuildModule.Tests.ps1 +3 -0
- package/ci/common-ci/scripts/modules/51DBuildModule/51DBuildModule.psm1 +200 -0
- package/ci/common-ci/scripts/modules/51DDeployModule/51DDeployModule.psm1 +66 -0
- package/ci/common-ci/scripts/modules/51DDownloadDataFileModule/51DDownloadDataFileModule.psm1 +58 -0
- package/ci/common-ci/scripts/modules/51DEnvironmentModule/51DEnvironmentModule.Tests.ps1 +25 -0
- package/ci/common-ci/scripts/modules/51DEnvironmentModule/51DEnvironmentModule.psm1 +22 -0
- package/ci/common-ci/scripts/modules/51DErrorHandleModule/51DErrorHandleModule.Tests.ps1 +1 -0
- package/ci/common-ci/scripts/modules/51DErrorHandleModule/51DErrorHandleModule.psm1 +41 -0
- package/ci/common-ci/scripts/modules/51DGitModule/51DGitModule.Tests.ps1 +5 -0
- package/ci/common-ci/scripts/modules/51DGitModule/51DGitModule.psm1 +698 -0
- package/ci/common-ci/scripts/modules/51DPackageModule/51DPackageModule.Tests.ps1 +842 -0
- package/ci/common-ci/scripts/modules/51DPackageModule/51DPackageModule.psm1 +926 -0
- package/ci/common-ci/scripts/modules/51DPipelineModule/51DPipelineModule.Tests.ps1 +1 -0
- package/ci/common-ci/scripts/modules/51DPipelineModule/51DPipelineModule.psm1 +87 -0
- package/ci/common-ci/scripts/modules/51DPullRequestModule/51DPullRequestModule.Tests.ps1 +194 -0
- package/ci/common-ci/scripts/modules/51DPullRequestModule/51DPullRequestModule.psm1 +653 -0
- package/ci/common-ci/scripts/modules/51DReleaseModule/51DReleaseModule.Tests.ps1 +277 -0
- package/ci/common-ci/scripts/modules/51DReleaseModule/51DReleaseModule.psm1 +554 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/51DReleaseTestEnvModule.Tests.ps1 +1141 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/51DReleaseTestEnvModule.psd1 +0 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/51DReleaseTestEnvModule.psm1 +1465 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/ConfigurationVerifier.Tests.ps1 +318 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/ConfigurationVerifier.psm1 +344 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/ReleaseVerifier.Tests.ps1 +1186 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/ReleaseVerifier.psm1 +900 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/SharedVariables.psm1 +139 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/c-test-env-config.json +268 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/dotnet-deploy-test-env-config.json +700 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/dotnet-test-env-config.json +533 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/go-deploy-test-env-config.json +290 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/go-test-env-config.json +260 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/java-deploy-test-env-config.json +511 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/java-test-env-config.json +388 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/node-deploy-test-env-config.json +419 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/node-test-env-config.json +329 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/php-test-env-config.json +540 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/python-deploy-test-env-config.json +411 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/python-test-env-config.json +321 -0
- package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/config/test-env-config.json +457 -0
- package/ci/common-ci/scripts/modules/51DRestModule/51DRestModule.psm1 +38 -0
- package/ci/common-ci/scripts/modules/AzurePortalModules/51DApplicationInsightsModule/51DApplicationInsightsModule.psm1 +104 -0
- package/ci/common-ci/scripts/modules/AzurePortalModules/51DChecksModule/51DChecksModule.psm1 +68 -0
- package/ci/common-ci/scripts/modules/AzurePortalModules/51DCloudModule/51DCloudModule.psm1 +155 -0
- package/ci/common-ci/scripts/modules/AzurePortalModules/51DConnectAzureModule/51DConnectAzureModule.psm1 +45 -0
- package/ci/common-ci/scripts/modules/AzurePortalModules/51DSSLBindingsModule/51DSSLBIndingsModule.psm1 +100 -0
- package/ci/common-ci/scripts/modules/AzurePortalModules/51DStagingSlotModule/51DStagingSlotModule.psm1 +50 -0
- package/ci/common-ci/scripts/modules/AzurePortalModules/51DStorageAccountModule/51DStorageAccountModule.psm1 +248 -0
- package/ci/common-ci/scripts/modules/AzurePortalModules/51DTrafficManagerModule/51DTrafficManagerModule.psm1 +58 -0
- package/ci/common-ci/shared-auto-complete-pr-stage.yml +61 -0
- package/ci/common-ci/shared-create-tag-job.yml +23 -0
- package/ci/common-ci/shared-docker-build-steps.yml +34 -0
- package/ci/common-ci/shared-docker-push-steps.yml +32 -0
- package/ci/common-ci/shared-docker-test-http-steps.yml +69 -0
- package/ci/common-ci/shared-git-tag-job.yml +38 -0
- package/ci/common-ci/shared-git-version-job.yml +71 -0
- package/ci/common-ci/shared-publish-github-stage.yml +107 -0
- package/ci/common-ci/shared-submodule-trigger-stage.yml +110 -0
- package/ci/common-ci/shared-variables.yml +3 -0
- package/ci/common-ci/trigger-release-apis.yml +39 -0
- package/ci/create-packages.yml +109 -0
- package/ci/deploy-external.yml +55 -0
- package/ci/deploy-internal.yml +50 -0
- package/ci/shared-build-and-test-platforms.yml +26 -0
- package/ci/shared-build-and-test-stage.yml +128 -0
- package/ci/shared-variables.yml +7 -0
- package/ci/submodule-trigger.yml +12 -0
- package/docs/Doxyfile +3 -3
- package/docs/DoxygenLayout.xml +1 -1
- package/examples/examples.test.js +3 -3
- package/geoLocationPipelineBuilder.js +16 -13
- package/package.json +14 -6
- package/setup.js +1 -0
- package/tests/geoLocationCloud.test.js +192 -0
- package/tsconfig.json +21 -0
- package/types/geoLocationCloud.d.ts +7 -0
- package/types/geoLocationPipelineBuilder.d.ts +17 -0
- package/types/index.d.ts +2 -0
- package/build-and-test.yml +0 -112
- package/publish-packages.yml +0 -87
package/ci/common-ci/scripts/modules/51DReleaseTestEnvModule/51DReleaseTestEnvModule.Tests.ps1
ADDED
|
@@ -0,0 +1,1141 @@
|
|
|
1
|
+
# All tests for 'Clear-TestEnvironment' function
|
|
2
|
+
Describe 'Clear-TestEnvironment' {
|
|
3
|
+
It 'clear all repositories, except mandatory repository' {
|
|
4
|
+
# Mock response for getting all repositories
|
|
5
|
+
Mock Invoke-WebRequest {
|
|
6
|
+
return @{
|
|
7
|
+
StatusCode = 200
|
|
8
|
+
content = '{
|
|
9
|
+
"value": [
|
|
10
|
+
{
|
|
11
|
+
"name": "MandatoryRepository"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "repo1"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}'
|
|
18
|
+
}
|
|
19
|
+
} `
|
|
20
|
+
-ParameterFilter {
|
|
21
|
+
$URI -match ".*repositories.*" -and $Method -eq "GET"
|
|
22
|
+
} `
|
|
23
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
24
|
+
|
|
25
|
+
# Mock reponse for deleting a repository
|
|
26
|
+
Mock Invoke-WebRequest {
|
|
27
|
+
return @{
|
|
28
|
+
StatusCode = 200
|
|
29
|
+
}
|
|
30
|
+
} `
|
|
31
|
+
-ParameterFilter {
|
|
32
|
+
$URI -match ".*repositories/.*\?.*" `
|
|
33
|
+
-and $Method -eq "DELETE"
|
|
34
|
+
} `
|
|
35
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
36
|
+
|
|
37
|
+
Mock Remove-AllDefinitions { return $true } `
|
|
38
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
39
|
+
Mock Remove-AllPolicies { return $true } `
|
|
40
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
41
|
+
|
|
42
|
+
# Clear the test environment
|
|
43
|
+
$result = Clear-TestEnvironment -Force
|
|
44
|
+
$result | Should -BeExactly $true
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
It 'fails to clear all repositories' {
|
|
48
|
+
# Mock response for getting all repositories
|
|
49
|
+
Mock Invoke-WebRequest {
|
|
50
|
+
return @{
|
|
51
|
+
StatusCode = 200
|
|
52
|
+
content = '{
|
|
53
|
+
"value": [
|
|
54
|
+
{
|
|
55
|
+
"name": "MandatoryRepository"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "repo1"
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}'
|
|
62
|
+
}
|
|
63
|
+
} `
|
|
64
|
+
-ParameterFilter {
|
|
65
|
+
$URI -match ".*repositories.*" -and $Method -eq "GET"
|
|
66
|
+
} `
|
|
67
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
68
|
+
|
|
69
|
+
# Mock reponse for deleting a repository
|
|
70
|
+
Mock Invoke-WebRequest {
|
|
71
|
+
return @{
|
|
72
|
+
StatusCode = 500
|
|
73
|
+
}
|
|
74
|
+
} `
|
|
75
|
+
-ParameterFilter {
|
|
76
|
+
$URI -match ".*repositories/.*\?.*" `
|
|
77
|
+
-and $Method -eq "DELETE"
|
|
78
|
+
} `
|
|
79
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
80
|
+
|
|
81
|
+
# Clear the test environment
|
|
82
|
+
{ Clear-TestEnvironment -Force } | Should -Throw
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
It 'fails to get all repositories before the clearance' {
|
|
86
|
+
# Mock response for getting all repositories
|
|
87
|
+
Mock Invoke-WebRequest {
|
|
88
|
+
return @{
|
|
89
|
+
StatusCode = 500
|
|
90
|
+
}
|
|
91
|
+
} `
|
|
92
|
+
-ParameterFilter {
|
|
93
|
+
$URI -match ".*repositories.*" -and $Method -eq "GET"
|
|
94
|
+
} `
|
|
95
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
96
|
+
|
|
97
|
+
# Mock reponse for deleting a repository
|
|
98
|
+
Mock Invoke-WebRequest {
|
|
99
|
+
return @{
|
|
100
|
+
StatusCode = 200
|
|
101
|
+
}
|
|
102
|
+
} `
|
|
103
|
+
-ParameterFilter {
|
|
104
|
+
$URI -match ".*repositories/.*\?.*" `
|
|
105
|
+
-and $Method -eq "DELETE"
|
|
106
|
+
} `
|
|
107
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
108
|
+
|
|
109
|
+
# Clear the test environment
|
|
110
|
+
{ Clear-TestEnvironment -Force } | Should -Throw
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
It 'fails to clear all definitions' {
|
|
114
|
+
# Mock response for getting all repositories
|
|
115
|
+
Mock Invoke-WebRequest {
|
|
116
|
+
return @{
|
|
117
|
+
StatusCode = 200
|
|
118
|
+
content = '{
|
|
119
|
+
"value": [
|
|
120
|
+
{
|
|
121
|
+
"name": "MandatoryRepository"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"name": "repo1"
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
}'
|
|
128
|
+
}
|
|
129
|
+
} `
|
|
130
|
+
-ParameterFilter {
|
|
131
|
+
$URI -match ".*repositories.*" -and $Method -eq "GET"
|
|
132
|
+
} `
|
|
133
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
134
|
+
|
|
135
|
+
# Mock reponse for deleting a repository
|
|
136
|
+
Mock Invoke-WebRequest {
|
|
137
|
+
return @{
|
|
138
|
+
StatusCode = 200
|
|
139
|
+
}
|
|
140
|
+
} `
|
|
141
|
+
-ParameterFilter {
|
|
142
|
+
$URI -match ".*repositories/.*\?.*" `
|
|
143
|
+
-and $Method -eq "DELETE"
|
|
144
|
+
} `
|
|
145
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
146
|
+
|
|
147
|
+
Mock Remove-AllDefinitions { return $false } `
|
|
148
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
149
|
+
|
|
150
|
+
# Clear the test environment
|
|
151
|
+
$result = Clear-TestEnvironment -Force
|
|
152
|
+
$result | Should -BeExactly $false
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
It 'Fails to clear all added "Required Reviewers" cross-repository policies' {
|
|
156
|
+
# Mock response for getting all repositories
|
|
157
|
+
Mock Invoke-WebRequest {
|
|
158
|
+
return @{
|
|
159
|
+
StatusCode = 200
|
|
160
|
+
content = '{
|
|
161
|
+
"value": [
|
|
162
|
+
{
|
|
163
|
+
"name": "MandatoryRepository"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"name": "repo1"
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
}'
|
|
170
|
+
}
|
|
171
|
+
} `
|
|
172
|
+
-ParameterFilter {
|
|
173
|
+
$URI -match ".*repositories.*" -and $Method -eq "GET"
|
|
174
|
+
} `
|
|
175
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
176
|
+
|
|
177
|
+
# Mock reponse for deleting a repository
|
|
178
|
+
Mock Invoke-WebRequest {
|
|
179
|
+
return @{
|
|
180
|
+
StatusCode = 200
|
|
181
|
+
}
|
|
182
|
+
} `
|
|
183
|
+
-ParameterFilter {
|
|
184
|
+
$URI -match ".*repositories/.*\?.*" `
|
|
185
|
+
-and $Method -eq "DELETE"
|
|
186
|
+
} `
|
|
187
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
188
|
+
|
|
189
|
+
Mock Remove-AllDefinitions { return $true } `
|
|
190
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
191
|
+
Mock Remove-AllPolicies { return $false } `
|
|
192
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
193
|
+
|
|
194
|
+
# Clear the test environment
|
|
195
|
+
$result = Clear-TestEnvironment -Force
|
|
196
|
+
$result | Should -BeExactly $false
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
# All tests for 'New-TestEnvironment' function
|
|
201
|
+
Describe 'New-TestEnvironment' {
|
|
202
|
+
It 'create full environment' {
|
|
203
|
+
Mock Test-Path { return $true } `
|
|
204
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
205
|
+
Mock Get-Content { return 'testing' } `
|
|
206
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
207
|
+
Mock ConvertFrom-Json { return '{}' } `
|
|
208
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
209
|
+
Mock Test-ConfigFile { return $true } `
|
|
210
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
211
|
+
Mock Add-Repositories { return $true } `
|
|
212
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
213
|
+
Mock Add-Definitions { return $true } `
|
|
214
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
215
|
+
Mock Add-BuildTriggers { return $true } `
|
|
216
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
217
|
+
Mock Add-Policies { return $true } `
|
|
218
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
219
|
+
Mock Add-PullRequests { return $true } `
|
|
220
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
221
|
+
$result = New-TestEnvironment -ConfigurationFile "//Non-Existent-Folder"
|
|
222
|
+
$result | Should -BeExactly $true
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
It 'non-existent configuration file' {
|
|
226
|
+
$result = New-TestEnvironment -ConfigurationFile "//Non-Existent-Folder"
|
|
227
|
+
$result | Should -BeExactly $false
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
It 'invalid JSON content in configuration file' {
|
|
231
|
+
Mock Test-Path { return $true } `
|
|
232
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
233
|
+
Mock Get-Content { return 'testing' } `
|
|
234
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
235
|
+
Mock ConvertFrom-Json { throw [ArgumentException]"Invalid JSON content" } `
|
|
236
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
237
|
+
{ New-TestEnvironment -ConfigurationFile "//Random_file" } | Should -Throw
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
# There is a separate test group to test the Test-ConfigFile function
|
|
241
|
+
It 'invalid settings in configuration file' {
|
|
242
|
+
Mock Test-Path { return $true } `
|
|
243
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
244
|
+
Mock Get-Content { return 'testing' } `
|
|
245
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
246
|
+
Mock ConvertFrom-Json { return '{}' } `
|
|
247
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
248
|
+
Mock Test-ConfigFile { return $false } `
|
|
249
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
250
|
+
$result = New-TestEnvironment -ConfigurationFile "//Testing-File"
|
|
251
|
+
$result | Should -BeExactly $false
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
It 'fails to fork a repository from production to test environment' {
|
|
255
|
+
Mock Test-Path { return $true } `
|
|
256
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
257
|
+
Mock Get-Content { return 'testing' } `
|
|
258
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
259
|
+
Mock ConvertFrom-Json { return '{}' } `
|
|
260
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
261
|
+
Mock Test-ConfigFile { return $true } `
|
|
262
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
263
|
+
Mock Add-Repositories { return $false } `
|
|
264
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
265
|
+
$result = New-TestEnvironment -ConfigurationFile "//Testing-File"
|
|
266
|
+
$result | Should -BeExactly $false
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
It 'fails to create required definitions' {
|
|
270
|
+
Mock Test-Path { return $true } `
|
|
271
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
272
|
+
Mock Get-Content { return 'testing' } `
|
|
273
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
274
|
+
Mock ConvertFrom-Json { return '{}' } `
|
|
275
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
276
|
+
Mock Test-ConfigFile { return $true } `
|
|
277
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
278
|
+
Mock Add-Repositories { return $true } `
|
|
279
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
280
|
+
Mock Add-Definitions { return $false } `
|
|
281
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
282
|
+
$result = New-TestEnvironment -ConfigurationFile "//Testing-File"
|
|
283
|
+
$result | Should -BeExactly $false
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
It 'fails to create build triggers' {
|
|
287
|
+
Mock Test-Path { return $true } `
|
|
288
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
289
|
+
Mock Get-Content { return 'testing' } `
|
|
290
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
291
|
+
Mock ConvertFrom-Json { return '{}' } `
|
|
292
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
293
|
+
Mock Test-ConfigFile { return $true } `
|
|
294
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
295
|
+
Mock Add-Repositories { return $true } `
|
|
296
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
297
|
+
Mock Add-Definitions { return $true } `
|
|
298
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
299
|
+
Mock Add-BuildTriggers { return $false } `
|
|
300
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
301
|
+
$result = New-TestEnvironment -ConfigurationFile "//Testing-File"
|
|
302
|
+
$result | Should -BeExactly $false
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
It 'fails to create required policies' {
|
|
306
|
+
Mock Test-Path { return $true } `
|
|
307
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
308
|
+
Mock Get-Content { return 'testing' } `
|
|
309
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
310
|
+
Mock ConvertFrom-Json { return '{}' } `
|
|
311
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
312
|
+
Mock Test-ConfigFile { return $true } `
|
|
313
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
314
|
+
Mock Add-Repositories { return $true } `
|
|
315
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
316
|
+
Mock Add-Definitions { return $true } `
|
|
317
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
318
|
+
Mock Add-BuildTriggers { return $true } `
|
|
319
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
320
|
+
Mock Add-Policies { return $false } `
|
|
321
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
322
|
+
$result = New-TestEnvironment -ConfigurationFile "//Testing-File"
|
|
323
|
+
$result | Should -BeExactly $false
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
It 'fails to create required pull requests' {
|
|
327
|
+
Mock Test-Path { return $true } `
|
|
328
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
329
|
+
Mock Get-Content { return 'testing' } `
|
|
330
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
331
|
+
Mock ConvertFrom-Json { return '{}' } `
|
|
332
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
333
|
+
Mock Test-ConfigFile { return $true } `
|
|
334
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
335
|
+
Mock Add-Repositories { return $true } `
|
|
336
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
337
|
+
Mock Add-Definitions { return $true } `
|
|
338
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
339
|
+
Mock Add-BuildTriggers { return $true } `
|
|
340
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
341
|
+
Mock Add-Policies { return $true } `
|
|
342
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
343
|
+
Mock Add-PullRequests { return $false } `
|
|
344
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
345
|
+
$result = New-TestEnvironment -ConfigurationFile "//Non-Existent-Folder"
|
|
346
|
+
$result | Should -BeExactly $false
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
# All tests for 'Add-Repositories function
|
|
351
|
+
Describe 'Add-Repositories' {
|
|
352
|
+
It 'Add no repositories' {
|
|
353
|
+
$configJson = '{
|
|
354
|
+
"repositories": []
|
|
355
|
+
}'
|
|
356
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
357
|
+
$result = Add-Repositories -Configuration $config
|
|
358
|
+
$result | Should -BeExactly $true
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
It 'Add all repositories' {
|
|
362
|
+
Mock Add-Repository { return $true } `
|
|
363
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
364
|
+
$configJson = '{
|
|
365
|
+
"repositories": {
|
|
366
|
+
"ci-test-repo-1": {},
|
|
367
|
+
"ci-test-repo-3": {}
|
|
368
|
+
}
|
|
369
|
+
}'
|
|
370
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
371
|
+
$result = Add-Repositories -Configuration $config
|
|
372
|
+
$result | Should -BeExactly $true
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
It 'Fails to add a repository' {
|
|
376
|
+
Mock Add-Repository { return $false } `
|
|
377
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
378
|
+
$configJson = '{
|
|
379
|
+
"repositories": {
|
|
380
|
+
"ci-test-repo-1": {},
|
|
381
|
+
"ci-test-repo-3": {}
|
|
382
|
+
}
|
|
383
|
+
}'
|
|
384
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
385
|
+
$result = Add-Repositories -Configuration $config
|
|
386
|
+
$result | Should -BeExactly $false
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
# All tests for 'Add-Repository' function
|
|
391
|
+
Describe 'Add-Repository' {
|
|
392
|
+
It 'Add a repository' {
|
|
393
|
+
Mock Get-RepositoryId { return 1 } `
|
|
394
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
395
|
+
Mock Get-ProductionProjectId { return 1 } `
|
|
396
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
397
|
+
Mock Get-TestProjectId { return 1 } `
|
|
398
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
399
|
+
Mock Get-ReviewerId { return 1 } `
|
|
400
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
401
|
+
# Mock a successful web request
|
|
402
|
+
Mock Invoke-WebRequest {
|
|
403
|
+
return @{
|
|
404
|
+
StatusCode = 200
|
|
405
|
+
}
|
|
406
|
+
} `
|
|
407
|
+
-ParameterFilter {
|
|
408
|
+
$URI -match ".*repositories\?.*" `
|
|
409
|
+
-and $Method -eq "POST"
|
|
410
|
+
} `
|
|
411
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
412
|
+
Mock Add-RepositoryBranches { return $true } `
|
|
413
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
414
|
+
Mock Add-RepositoryTags { return $true } `
|
|
415
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
416
|
+
Mock Update-RepositoryPackageVersions { return $true } `
|
|
417
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
418
|
+
$result = Add-Repository -RepositoryName "TestRepo" -RepositoryConfig $(New-Object -TypeName Object)
|
|
419
|
+
$result | Should -BeExactly $true
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
It 'Non-existent reposity name' {
|
|
423
|
+
Mock Get-RepositoryId { return $null } `
|
|
424
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
425
|
+
$result = Add-Repository -RepositoryName "TestRepo" -RepositoryConfig $(New-Object -TypeName Object)
|
|
426
|
+
$result | Should -BeExactly $false
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
It 'Fails to fork from production evironment' {
|
|
430
|
+
Mock Get-RepositoryId { return 1 } `
|
|
431
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
432
|
+
# Mock a bad web request
|
|
433
|
+
Mock Invoke-WebRequest {
|
|
434
|
+
return @{
|
|
435
|
+
StatusCode = 500
|
|
436
|
+
}
|
|
437
|
+
} `
|
|
438
|
+
-ParameterFilter {
|
|
439
|
+
$URI -match ".*repositories\?.*" `
|
|
440
|
+
-and $Method -eq "POST"
|
|
441
|
+
} `
|
|
442
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
443
|
+
{ Add-Repository `
|
|
444
|
+
-RepositoryName "TestRepo" `
|
|
445
|
+
-RepositoryConfig $(New-Object `
|
|
446
|
+
-TypeName Object)} | Should -Throw
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
It 'Fails to add branches' {
|
|
450
|
+
Mock Get-RepositoryId { return 1 } `
|
|
451
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
452
|
+
Mock Get-ProductionProjectId { return 1 } `
|
|
453
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
454
|
+
Mock Get-TestProjectId { return 1 } `
|
|
455
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
456
|
+
Mock Get-ReviewerId { return 1 } `
|
|
457
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
458
|
+
# Mock a successful web request
|
|
459
|
+
Mock Invoke-WebRequest {
|
|
460
|
+
return @{
|
|
461
|
+
StatusCode = 200
|
|
462
|
+
}
|
|
463
|
+
} `
|
|
464
|
+
-ParameterFilter {
|
|
465
|
+
$URI -match ".*repositories\?.*" `
|
|
466
|
+
-and $Method -eq "POST"
|
|
467
|
+
} `
|
|
468
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
469
|
+
Mock Add-RepositoryBranches { return $false } `
|
|
470
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
471
|
+
$result = Add-Repository -RepositoryName "TestRepo" -RepositoryConfig $(New-Object -TypeName Object)
|
|
472
|
+
$result | Should -BeExactly $false
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
It 'Fails to add tags' {
|
|
476
|
+
Mock Get-RepositoryId { return 1 } `
|
|
477
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
478
|
+
Mock Get-ProductionProjectId { return 1 } `
|
|
479
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
480
|
+
Mock Get-TestProjectId { return 1 } `
|
|
481
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
482
|
+
Mock Get-ReviewerId { return 1 } `
|
|
483
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
484
|
+
# Mock a successful web request
|
|
485
|
+
Mock Invoke-WebRequest {
|
|
486
|
+
return @{
|
|
487
|
+
StatusCode = 200
|
|
488
|
+
}
|
|
489
|
+
} `
|
|
490
|
+
-ParameterFilter {
|
|
491
|
+
$URI -match ".*repositories\?.*" `
|
|
492
|
+
-and $Method -eq "POST"
|
|
493
|
+
} `
|
|
494
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
495
|
+
Mock Add-RepositoryBranches { return $true } `
|
|
496
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
497
|
+
Mock Add-RepositoryTags { return $false } `
|
|
498
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
499
|
+
$result = Add-Repository -RepositoryName "TestRepo" -RepositoryConfig $(New-Object -TypeName Object)
|
|
500
|
+
$result | Should -BeExactly $false
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
It 'Fails to update package versions' {
|
|
504
|
+
Mock Get-RepositoryId { return 1 } `
|
|
505
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
506
|
+
Mock Get-ProductionProjectId { return 1 } `
|
|
507
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
508
|
+
Mock Get-TestProjectId { return 1 } `
|
|
509
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
510
|
+
Mock Get-ReviewerId { return 1 } `
|
|
511
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
512
|
+
# Mock a successful web request
|
|
513
|
+
Mock Invoke-WebRequest {
|
|
514
|
+
return @{
|
|
515
|
+
StatusCode = 200
|
|
516
|
+
}
|
|
517
|
+
} `
|
|
518
|
+
-ParameterFilter {
|
|
519
|
+
$URI -match ".*repositories\?.*" `
|
|
520
|
+
-and $Method -eq "POST"
|
|
521
|
+
} `
|
|
522
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
523
|
+
Mock Add-RepositoryBranches { return $true } `
|
|
524
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
525
|
+
Mock Add-RepositoryTags { return $true } `
|
|
526
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
527
|
+
Mock Update-RepositoryPackageVersions { return $false } `
|
|
528
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
529
|
+
$result = Add-Repository -RepositoryName "TestRepo" -RepositoryConfig $(New-Object -TypeName Object)
|
|
530
|
+
$result | Should -BeExactly $false
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
# All tests for Add-RepositoryBranches
|
|
535
|
+
Describe 'Add-RepositoryBranches' {
|
|
536
|
+
It 'Add all branches' {
|
|
537
|
+
Mock Add-RepositoryBranch { return $true } `
|
|
538
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
539
|
+
$repoJson = '{
|
|
540
|
+
"branches": [
|
|
541
|
+
"branch1",
|
|
542
|
+
"branch2"
|
|
543
|
+
]
|
|
544
|
+
}'
|
|
545
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
546
|
+
$result = Add-RepositoryBranches -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
547
|
+
$result | Should -BeExactly $true
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
It 'No branch to add' {
|
|
551
|
+
Mock Add-RepositoryBranch { return $true } `
|
|
552
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
553
|
+
$repoJson = '{}'
|
|
554
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
555
|
+
$result = Add-RepositoryBranches -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
556
|
+
$result | Should -BeExactly $true
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
It 'Fails to add a branch' {
|
|
560
|
+
Mock Add-RepositoryBranch { return $false } `
|
|
561
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
562
|
+
$repoJson = '{
|
|
563
|
+
"branches": [
|
|
564
|
+
"branch1",
|
|
565
|
+
"branch2"
|
|
566
|
+
]
|
|
567
|
+
}'
|
|
568
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
569
|
+
$result = Add-RepositoryBranches -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
570
|
+
$result | Should -BeExactly $false
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
# All tests for Add-RepositoryBranch
|
|
575
|
+
Describe 'Add-RepositoryBranch' {
|
|
576
|
+
It 'Add a branch' {
|
|
577
|
+
Mock Get-Branch { return $('{ "objectId" : "0" }' | ConvertFrom-Json) } `
|
|
578
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
579
|
+
Mock Invoke-WebRequest {
|
|
580
|
+
return @{
|
|
581
|
+
StatusCode = 200
|
|
582
|
+
}
|
|
583
|
+
} `
|
|
584
|
+
-ParameterFilter {
|
|
585
|
+
$URI -match ".*repositories/.*/refs\?.*" `
|
|
586
|
+
-and $Method -eq "POST"
|
|
587
|
+
} `
|
|
588
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
589
|
+
$testBranch = '{ "base": "testSource", "name": "testTarget" }' | ConvertFrom-Json
|
|
590
|
+
$result = Add-RepositoryBranch -RepositoryName "TestRepo" -Branch $testBranch
|
|
591
|
+
$result | Should -BeExactly $true
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
It 'Fails to get default branch' {
|
|
595
|
+
Mock Get-Branch { return $null } `
|
|
596
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
597
|
+
$testBranch = '{ "base": "testSource", "name": "testTarget" }' | ConvertFrom-Json
|
|
598
|
+
$result = Add-RepositoryBranch -RepositoryName "TestRepo" -Branch $testBranch
|
|
599
|
+
$result | Should -BeExactly $false
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
It 'Fails to create a branch' {
|
|
603
|
+
Mock Get-Branch { return $('{ "objectId" : "0" }' | ConvertFrom-Json) } `
|
|
604
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
605
|
+
Mock Invoke-WebRequest {
|
|
606
|
+
return @{
|
|
607
|
+
StatusCode = 500
|
|
608
|
+
}
|
|
609
|
+
} `
|
|
610
|
+
-ParameterFilter {
|
|
611
|
+
$URI -match ".*repositories/.*/refs\?.*" `
|
|
612
|
+
-and $Method -eq "POST"
|
|
613
|
+
} `
|
|
614
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
615
|
+
$testBranch = '{ "source": "testSource", "target": "testTarget" }' | ConvertFrom-Json
|
|
616
|
+
{ Add-RepositoryBranch `
|
|
617
|
+
-RepositoryName "TestRepo" `
|
|
618
|
+
-Branch $testBranch } | Should -Throw
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
# All tests for Add-RepositoryTags
|
|
623
|
+
Describe 'Add-RepositoryTags' {
|
|
624
|
+
It 'Add all tags' {
|
|
625
|
+
Mock Add-RepositoryTag { return $true } `
|
|
626
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
627
|
+
$repoJson = '{
|
|
628
|
+
"tags": [
|
|
629
|
+
"tag1",
|
|
630
|
+
"tag2"
|
|
631
|
+
]
|
|
632
|
+
}'
|
|
633
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
634
|
+
$result = Add-RepositoryTags -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
635
|
+
$result | Should -BeExactly $true
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
It 'No tag to add' {
|
|
639
|
+
Mock Add-RepositoryTag { return $true } `
|
|
640
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
641
|
+
$repoJson = '{}'
|
|
642
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
643
|
+
$result = Add-RepositoryTags -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
644
|
+
$result | Should -BeExactly $true
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
It 'Fails to add a tag' {
|
|
648
|
+
Mock Add-RepositoryTag { return $false } `
|
|
649
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
650
|
+
$repoJson = '{
|
|
651
|
+
"tags": [
|
|
652
|
+
"tag1",
|
|
653
|
+
"tag2"
|
|
654
|
+
]
|
|
655
|
+
}'
|
|
656
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
657
|
+
$result = Add-RepositoryTags -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
658
|
+
$result | Should -BeExactly $false
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
# All tests for Add-RepositoryTag
|
|
663
|
+
Describe 'Add-RepositoryTag' {
|
|
664
|
+
It 'Add a tag' {
|
|
665
|
+
Mock Get-MainBranch { return $true } `
|
|
666
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
667
|
+
# Mock a successful web request
|
|
668
|
+
Mock Invoke-WebRequest {
|
|
669
|
+
return @{
|
|
670
|
+
StatusCode = 200
|
|
671
|
+
}
|
|
672
|
+
} `
|
|
673
|
+
-ParameterFilter {
|
|
674
|
+
$URI -match ".*repositories/.*/annotatedtags\?.*" `
|
|
675
|
+
-and $Method -eq "POST"
|
|
676
|
+
} `
|
|
677
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
678
|
+
$result = Add-RepositoryTag -RepositoryName "TestRepo" -Tag "TestTag"
|
|
679
|
+
$result | Should -BeExactly $true
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
It 'Main branch does not exist' {
|
|
683
|
+
Mock Get-MainBranch { return $null } `
|
|
684
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
685
|
+
$result = Add-RepositoryTag -RepositoryName "TestRepo" -Tag "TestTag"
|
|
686
|
+
$result | Should -BeExactly $false
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
It 'Main branch does not exist' {
|
|
690
|
+
Mock Get-MainBranch { return $true } `
|
|
691
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
692
|
+
Mock Invoke-WebRequest {
|
|
693
|
+
return @{
|
|
694
|
+
StatusCode = 500
|
|
695
|
+
}
|
|
696
|
+
} `
|
|
697
|
+
-ParameterFilter {
|
|
698
|
+
$URI -match ".*repositories/.*/annotatedtags\?.*" `
|
|
699
|
+
-and $Method -eq "POST"
|
|
700
|
+
} `
|
|
701
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
702
|
+
{ Add-RepositoryTag `
|
|
703
|
+
-RepositoryName "TestRepo" `
|
|
704
|
+
-Tag "TestTag" } | Should -Throw
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
## All tests for Update-RepositoryPackageVersion
|
|
709
|
+
## NOTE: Currently not needed as updating versions does
|
|
710
|
+
## not depend on original version number.
|
|
711
|
+
# Describe 'Update-RepositoryPackageVersion' {
|
|
712
|
+
# It 'Update all package versions for Java' {
|
|
713
|
+
# $false | Should -BeExactly $true
|
|
714
|
+
# }
|
|
715
|
+
#
|
|
716
|
+
# It 'Update all package versions for Dotnet' {
|
|
717
|
+
# $false | Should -BeExactly $true
|
|
718
|
+
# }
|
|
719
|
+
#
|
|
720
|
+
# It 'Update all package versions for Node' {
|
|
721
|
+
# $false | Should -BeExactly $true
|
|
722
|
+
# }
|
|
723
|
+
#
|
|
724
|
+
# It 'Update all package versions for Python' {
|
|
725
|
+
# $false | Should -BeExactly $true
|
|
726
|
+
# }
|
|
727
|
+
#
|
|
728
|
+
# # A place holder for word press
|
|
729
|
+
# It 'Fails to update package versions for WordPress' {
|
|
730
|
+
# $false | Should -BeExactly $true
|
|
731
|
+
# }
|
|
732
|
+
#
|
|
733
|
+
# It 'Fails to update all package versions for Java' {
|
|
734
|
+
# $false | Should -BeExactly $true
|
|
735
|
+
# }
|
|
736
|
+
#
|
|
737
|
+
# It 'Fails to update all package versions for Dotnet' {
|
|
738
|
+
# $false | Should -BeExactly $true
|
|
739
|
+
# }
|
|
740
|
+
#
|
|
741
|
+
# It 'Fails to update all package versions for Node' {
|
|
742
|
+
# $false | Should -BeExactly $true
|
|
743
|
+
# }
|
|
744
|
+
#
|
|
745
|
+
# It 'Fails to update all package versions for Python' {
|
|
746
|
+
# $false | Should -BeExactly $true
|
|
747
|
+
# }
|
|
748
|
+
# }
|
|
749
|
+
|
|
750
|
+
# All tests for Add-Definitions
|
|
751
|
+
Describe 'Add-Definitions' {
|
|
752
|
+
It 'Add all definitions' {
|
|
753
|
+
Mock Add-RepositoryDefinitions { return $true } `
|
|
754
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
755
|
+
$configJson = '{
|
|
756
|
+
"repositories": {
|
|
757
|
+
"repo1": {
|
|
758
|
+
"definitions": [
|
|
759
|
+
"definition1"
|
|
760
|
+
]
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
}'
|
|
764
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
765
|
+
$result = Add-Definitions -Configuration $config
|
|
766
|
+
$result | Should -BeExactly $true
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
It 'No definitions to add' {
|
|
770
|
+
Mock Add-RepositoryDefinitions { return $true } `
|
|
771
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
772
|
+
$configJson = '{
|
|
773
|
+
"repositories": {
|
|
774
|
+
"repo1": {}
|
|
775
|
+
}
|
|
776
|
+
}'
|
|
777
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
778
|
+
$result = Add-Definitions -Configuration $config
|
|
779
|
+
$result | Should -BeExactly $true
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
It 'Fails to add a definition' {
|
|
783
|
+
Mock Add-RepositoryDefinitions { return $false } `
|
|
784
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
785
|
+
$configJson = '{
|
|
786
|
+
"repositories": {
|
|
787
|
+
"repo1": {
|
|
788
|
+
"definitions": [
|
|
789
|
+
"definition1"
|
|
790
|
+
]
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
}'
|
|
794
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
795
|
+
$result = Add-Definitions -Configuration $config
|
|
796
|
+
$result | Should -BeExactly $false
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
# All tetes for Add-RepositoryDefinitions
|
|
801
|
+
Describe 'Add-RepositoryDefinitions' {
|
|
802
|
+
It 'Add all repository definitions' {
|
|
803
|
+
Mock Add-RepositoryDefinition { return $true } `
|
|
804
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
805
|
+
$repoJson = '{
|
|
806
|
+
"definitions": [
|
|
807
|
+
"definition1",
|
|
808
|
+
"definition2"
|
|
809
|
+
]
|
|
810
|
+
}'
|
|
811
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
812
|
+
$result = Add-RepositoryDefinitions -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
813
|
+
$result | Should -BeExactly $true
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
It 'No definitions to add' {
|
|
817
|
+
Mock Add-RepositoryDefinition { return $true } `
|
|
818
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
819
|
+
$repoJson = '{}'
|
|
820
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
821
|
+
$result = Add-RepositoryDefinitions -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
822
|
+
$result | Should -BeExactly $true
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
It 'Fails to add a definition' {
|
|
826
|
+
Mock Add-RepositoryDefinition { return $false } `
|
|
827
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
828
|
+
$repoJson = '{
|
|
829
|
+
"definitions": [
|
|
830
|
+
"definition1",
|
|
831
|
+
"definition2"
|
|
832
|
+
]
|
|
833
|
+
}'
|
|
834
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
835
|
+
$result = Add-RepositoryDefinitions -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
836
|
+
$result | Should -BeExactly $false
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
# All tests for Add-BuildTriggers
|
|
841
|
+
Describe 'Add-BuildTriggers' {
|
|
842
|
+
It 'Add all build triggers' {
|
|
843
|
+
Mock Add-RepositoryBuildTriggers { return $true } `
|
|
844
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
845
|
+
$configJson = '{
|
|
846
|
+
"repositories": {
|
|
847
|
+
"repo1": {
|
|
848
|
+
"definitions": [
|
|
849
|
+
"definition1"
|
|
850
|
+
]
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
}'
|
|
854
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
855
|
+
$result = Add-BuildTriggers -Configuration $config
|
|
856
|
+
$result | Should -BeExactly $true
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
It 'No definitions to add' {
|
|
860
|
+
Mock Add-RepositoryBuildTriggers { return $true } `
|
|
861
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
862
|
+
$configJson = '{
|
|
863
|
+
"repositories": {
|
|
864
|
+
"repo1": {}
|
|
865
|
+
}
|
|
866
|
+
}'
|
|
867
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
868
|
+
$result = Add-BuildTriggers -Configuration $config
|
|
869
|
+
$result | Should -BeExactly $true
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
It 'Fails to add build triggers for a definition' {
|
|
873
|
+
Mock Add-RepositoryBuildTriggers { return $false } `
|
|
874
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
875
|
+
$configJson = '{
|
|
876
|
+
"repositories": {
|
|
877
|
+
"repo1": {
|
|
878
|
+
"definitions": [
|
|
879
|
+
"definition1"
|
|
880
|
+
]
|
|
881
|
+
}
|
|
882
|
+
}
|
|
883
|
+
}'
|
|
884
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
885
|
+
$result = Add-BuildTriggers -Configuration $config
|
|
886
|
+
$result | Should -BeExactly $false
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
# All tetes for Add-RepositoryDefinitions
|
|
891
|
+
Describe 'Add-RepositoryBuildTriggers' {
|
|
892
|
+
It 'Add all repository definitions' {
|
|
893
|
+
Mock Add-RepositoryDefinitionBuildTriggers { return $true } `
|
|
894
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
895
|
+
$repoJson = '{
|
|
896
|
+
"definitions": [
|
|
897
|
+
"definition1",
|
|
898
|
+
"definition2"
|
|
899
|
+
]
|
|
900
|
+
}'
|
|
901
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
902
|
+
$result = Add-RepositoryBuildTriggers -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
903
|
+
$result | Should -BeExactly $true
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
It 'No definitions to add' {
|
|
907
|
+
Mock Add-RepositoryDefinitionBuildTriggers { return $true } `
|
|
908
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
909
|
+
$repoJson = '{}'
|
|
910
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
911
|
+
$result = Add-RepositoryBuildTriggers -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
912
|
+
$result | Should -BeExactly $true
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
It 'Fails to add build triggers for a definition' {
|
|
916
|
+
Mock Add-RepositoryDefinitionBuildTriggers { return $false } `
|
|
917
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
918
|
+
$repoJson = '{
|
|
919
|
+
"definitions": [
|
|
920
|
+
"definition1",
|
|
921
|
+
"definition2"
|
|
922
|
+
]
|
|
923
|
+
}'
|
|
924
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
925
|
+
$result = Add-RepositoryBuildTriggers -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
926
|
+
$result | Should -BeExactly $false
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
# All tests for Add-Policies
|
|
931
|
+
Describe 'Add-Policies' {
|
|
932
|
+
It 'Add all policies' {
|
|
933
|
+
Mock Add-RepositoryPolicy { return $true } `
|
|
934
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
935
|
+
Mock Add-RepositoryPolicies { return $true } `
|
|
936
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
937
|
+
$configJson = '{
|
|
938
|
+
"repositories": {
|
|
939
|
+
"repo1": {
|
|
940
|
+
"policies": [
|
|
941
|
+
"repoPolicy1"
|
|
942
|
+
]
|
|
943
|
+
}
|
|
944
|
+
},
|
|
945
|
+
"policies": [
|
|
946
|
+
"policy1"
|
|
947
|
+
]
|
|
948
|
+
}'
|
|
949
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
950
|
+
$result = Add-Policies -Configuration $config
|
|
951
|
+
$result | Should -BeExactly $true
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
It 'No policies to add' {
|
|
955
|
+
Mock Add-RepositoryPolicy { return $true } `
|
|
956
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
957
|
+
Mock Add-RepositoryPolicies { return $true } `
|
|
958
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
959
|
+
$configJson = '{
|
|
960
|
+
"repositories": {
|
|
961
|
+
"repo1": {}
|
|
962
|
+
}
|
|
963
|
+
}'
|
|
964
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
965
|
+
$result = Add-Policies -Configuration $config
|
|
966
|
+
$result | Should -BeExactly $true
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
It 'Fails to add a global policy' {
|
|
970
|
+
Mock Add-RepositoryPolicy { return $false } `
|
|
971
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
972
|
+
$configJson = '{
|
|
973
|
+
"repositories": {
|
|
974
|
+
"repo1": {}
|
|
975
|
+
},
|
|
976
|
+
"policies": [
|
|
977
|
+
"policy1"
|
|
978
|
+
]
|
|
979
|
+
}'
|
|
980
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
981
|
+
$result = Add-Policies -Configuration $config
|
|
982
|
+
$result | Should -BeExactly $false
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
It 'Fails to add repository policies' {
|
|
986
|
+
Mock Add-RepositoryPolicy { return $true } `
|
|
987
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
988
|
+
Mock Add-RepositoryPolicies { return $false } `
|
|
989
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
990
|
+
$configJson = '{
|
|
991
|
+
"repositories": {
|
|
992
|
+
"repo1": {
|
|
993
|
+
"policies": [
|
|
994
|
+
"repoPolicy1"
|
|
995
|
+
]
|
|
996
|
+
}
|
|
997
|
+
},
|
|
998
|
+
"policies": [
|
|
999
|
+
"policy1"
|
|
1000
|
+
]
|
|
1001
|
+
}'
|
|
1002
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
1003
|
+
$result = Add-Policies -Configuration $config
|
|
1004
|
+
$result | Should -BeExactly $false
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
|
|
1008
|
+
# All tests for Add-RepositoryPolicies
|
|
1009
|
+
Describe 'Add-RepositoryPolicies' {
|
|
1010
|
+
It 'Add all repository policies' {
|
|
1011
|
+
Mock Add-RepositoryPolicy { return $true } `
|
|
1012
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
1013
|
+
$repoJson = '{
|
|
1014
|
+
"policies": [
|
|
1015
|
+
"policy1",
|
|
1016
|
+
"policy2"
|
|
1017
|
+
]
|
|
1018
|
+
}'
|
|
1019
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
1020
|
+
$result = Add-RepositoryPolicies -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
1021
|
+
$result | Should -BeExactly $true
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
It 'No policies to add' {
|
|
1025
|
+
Mock Add-RepositoryPolicy { return $true } `
|
|
1026
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
1027
|
+
$repoJson = '{}'
|
|
1028
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
1029
|
+
$result = Add-RepositoryPolicies -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
1030
|
+
$result | Should -BeExactly $true
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
It 'Fails to add a policy' {
|
|
1034
|
+
Mock Add-RepositoryPolicy { return $false } `
|
|
1035
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
1036
|
+
$repoJson = '{
|
|
1037
|
+
"policies": [
|
|
1038
|
+
"policy1",
|
|
1039
|
+
"policy2"
|
|
1040
|
+
]
|
|
1041
|
+
}'
|
|
1042
|
+
$repoConfig = $repoJson | Out-String | ConvertFrom-Json
|
|
1043
|
+
$result = Add-RepositoryPolicies -RepositoryName "TestRepo" -RepositoryConfig $repoConfig
|
|
1044
|
+
$result | Should -BeExactly $false
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
# All tests for Add-PullRequests
|
|
1049
|
+
Describe 'Add-PullRequests' {
|
|
1050
|
+
It 'Add all pull requests' {
|
|
1051
|
+
Mock New-PullRequest { return $true } `
|
|
1052
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
1053
|
+
Mock Add-PullRequestComment { return $true } `
|
|
1054
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
1055
|
+
$configJson = '{
|
|
1056
|
+
"repositories": {
|
|
1057
|
+
"repo1": {
|
|
1058
|
+
"pullrequests": [
|
|
1059
|
+
{
|
|
1060
|
+
"source" : "sourceRef",
|
|
1061
|
+
"target" : "targetRef",
|
|
1062
|
+
"comment" : true
|
|
1063
|
+
}
|
|
1064
|
+
]
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
}'
|
|
1068
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
1069
|
+
$result = Add-PullRequests -Configuration $config
|
|
1070
|
+
$result | Should -BeExactly $true
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
It 'No pull requests to add' {
|
|
1074
|
+
Mock New-PullRequest { return $('{"pullRequestId" : 1}' | ConvertFrom-Json) } `
|
|
1075
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
1076
|
+
Mock Add-PullRequestComment { return $true } `
|
|
1077
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
1078
|
+
$configJson = '{
|
|
1079
|
+
"repositories": {
|
|
1080
|
+
"repo1": {}
|
|
1081
|
+
}
|
|
1082
|
+
}'
|
|
1083
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
1084
|
+
$result = Add-PullRequests -Configuration $config
|
|
1085
|
+
$result | Should -BeExactly $true
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1088
|
+
It 'Fails to add a pull request' {
|
|
1089
|
+
Mock New-PullRequest { return $null } `
|
|
1090
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
1091
|
+
$configJson = '{
|
|
1092
|
+
"repositories": {
|
|
1093
|
+
"repo1": {
|
|
1094
|
+
"pullrequests": [
|
|
1095
|
+
{
|
|
1096
|
+
"source" : "sourceRef",
|
|
1097
|
+
"target" : "targetRef"
|
|
1098
|
+
}
|
|
1099
|
+
]
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
}'
|
|
1103
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
1104
|
+
$result = Add-PullRequests -Configuration $config
|
|
1105
|
+
$result | Should -BeExactly $false
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
It 'Fails to add a pull request with comment' {
|
|
1109
|
+
Mock New-PullRequest { return $('{"pullRequestId" : 1}' | ConvertFrom-Json) } `
|
|
1110
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
1111
|
+
Mock Add-PullRequestComment { return $false } `
|
|
1112
|
+
-ModuleName 51DReleaseTestEnvModule
|
|
1113
|
+
$configJson = '{
|
|
1114
|
+
"repositories": {
|
|
1115
|
+
"repo1": {
|
|
1116
|
+
"pullrequests": [
|
|
1117
|
+
{
|
|
1118
|
+
"source" : "sourceRef",
|
|
1119
|
+
"target" : "targetRef",
|
|
1120
|
+
"comment" : true
|
|
1121
|
+
}
|
|
1122
|
+
]
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
1125
|
+
}'
|
|
1126
|
+
$config = $configJson | Out-String | ConvertFrom-Json
|
|
1127
|
+
$result = Add-PullRequests -Configuration $config
|
|
1128
|
+
$result | Should -BeExactly $false
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
# Cannot vote using Rest APIs.
|
|
1132
|
+
It 'Fails to add a pull request with votes' {
|
|
1133
|
+
$true | Should -BeExactly $true
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
# We don't check build validation because the pull request completion
|
|
1137
|
+
# is only performed once the build and test succeeded.
|
|
1138
|
+
It 'Fails to add a pull request with failed build validation' {
|
|
1139
|
+
$true | Should -BeExactly $true
|
|
1140
|
+
}
|
|
1141
|
+
}
|