@@ -11,19 +11,27 @@ Describe 'Test Get-InstalledPSResource for Module' -tags 'CI' {
11
11
$PSGalleryName = Get-PSGalleryName
12
12
$testModuleName = " test_module"
13
13
$testScriptName = " test_script"
14
+ $TestEmptyDirectoryPath = [System.IO.Path ]::Combine($env: TEMP , ' EmptyDir' )
15
+
14
16
Get-NewPSResourceRepositoryFile
15
17
16
18
Install-PSResource - Name $testModuleName - Repository $PSGalleryName - TrustRepository
17
19
Install-PSResource - Name $testModuleName - Repository $PSGalleryName - TrustRepository - Version " 1.0"
18
20
Install-PSResource - Name $testModuleName - Repository $PSGalleryName - TrustRepository - Version " 3.0"
19
21
Install-PSResource - Name $testModuleName - Repository $PSGalleryName - TrustRepository - Version " 5.0"
20
22
Install-PSResource - Name $testScriptName - Repository $PSGalleryName - TrustRepository
23
+
24
+ $null = New-Item - Path $TestEmptyDirectoryPath - ItemType ' Directory'
21
25
}
22
26
23
27
AfterAll {
24
28
Uninstall-PSResource - Name $testModuleName - Version " *" - ErrorAction SilentlyContinue
25
29
Uninstall-PSResource - Name $testScriptName - Version " *" - ErrorAction SilentlyContinue
26
30
Get-RevertPSResourceRepositoryFile
31
+
32
+ if (Test-Path - Path $TestEmptyDirectoryPath - PathType ' Container' ) {
33
+ Remove-Item - Path $TestEmptyDirectoryPath - Recurse - Force
34
+ }
27
35
}
28
36
29
37
It " Get resources without any parameter values" {
@@ -54,16 +62,17 @@ Describe 'Test Get-InstalledPSResource for Module' -tags 'CI' {
54
62
$pkgs.Name | Should - Contain $testModuleName
55
63
}
56
64
57
- $testCases =
58
- @ {Version = " [1.0.0.0]" ; ExpectedVersion = " 1.0.0.0" ; Reason = " validate version, exact match" },
59
- @ {Version = " 1.0.0.0" ; ExpectedVersion = " 1.0.0.0" ; Reason = " validate version, exact match without bracket syntax" },
60
- @ {Version = " [1.0.0.0, 5.0.0.0]" ; ExpectedVersion = @ (" 5.0.0.0" , " 3.0.0.0" , " 1.0.0.0" ); Reason = " validate version, exact range inclusive" },
61
- @ {Version = " (1.0.0.0, 5.0.0.0)" ; ExpectedVersion = @ (" 3.0.0.0" ); Reason = " validate version, exact range exclusive" },
62
- @ {Version = " (1.0.0.0,)" ; ExpectedVersion = @ (" 5.0.0.0" , " 3.0.0.0" ); Reason = " validate version, minimum version exclusive" },
63
- @ {Version = " [1.0.0.0,)" ; ExpectedVersion = @ (" 5.0.0.0" , " 3.0.0.0" , " 1.0.0.0" ); Reason = " validate version, minimum version inclusive" },
64
- @ {Version = " (,5.0.0.0)" ; ExpectedVersion = @ (" 3.0.0.0" , " 1.0.0.0" ); Reason = " validate version, maximum version exclusive" },
65
- @ {Version = " (,5.0.0.0]" ; ExpectedVersion = @ (" 5.0.0.0" , " 3.0.0.0" , " 1.0.0.0" ); Reason = " validate version, maximum version inclusive" },
66
- @ {Version = " [1.0.0.0, 5.0.0.0)" ; ExpectedVersion = @ (" 3.0.0.0" , " 1.0.0.0" ); Reason = " validate version, mixed inclusive minimum and exclusive maximum version" }
65
+ $testCases = [array ](
66
+ @ {Version = " [1.0.0.0]" ; ExpectedVersion = " 1.0.0.0" ; Reason = " validate version, exact match" },
67
+ @ {Version = " 1.0.0.0" ; ExpectedVersion = " 1.0.0.0" ; Reason = " validate version, exact match without bracket syntax" },
68
+ @ {Version = " [1.0.0.0, 5.0.0.0]" ; ExpectedVersion = @ (" 5.0.0.0" , " 3.0.0.0" , " 1.0.0.0" ); Reason = " validate version, exact range inclusive" },
69
+ @ {Version = " (1.0.0.0, 5.0.0.0)" ; ExpectedVersion = @ (" 3.0.0.0" ); Reason = " validate version, exact range exclusive" },
70
+ @ {Version = " (1.0.0.0,)" ; ExpectedVersion = @ (" 5.0.0.0" , " 3.0.0.0" ); Reason = " validate version, minimum version exclusive" },
71
+ @ {Version = " [1.0.0.0,)" ; ExpectedVersion = @ (" 5.0.0.0" , " 3.0.0.0" , " 1.0.0.0" ); Reason = " validate version, minimum version inclusive" },
72
+ @ {Version = " (,5.0.0.0)" ; ExpectedVersion = @ (" 3.0.0.0" , " 1.0.0.0" ); Reason = " validate version, maximum version exclusive" },
73
+ @ {Version = " (,5.0.0.0]" ; ExpectedVersion = @ (" 5.0.0.0" , " 3.0.0.0" , " 1.0.0.0" ); Reason = " validate version, maximum version inclusive" },
74
+ @ {Version = " [1.0.0.0, 5.0.0.0)" ; ExpectedVersion = @ (" 3.0.0.0" , " 1.0.0.0" ); Reason = " validate version, mixed inclusive minimum and exclusive maximum version" }
75
+ )
67
76
68
77
It " Get resource when given Name to <Reason> <Version>" - TestCases $testCases {
69
78
param ($Version , $ExpectedVersion )
@@ -144,8 +153,12 @@ $testCases =
144
153
(Get-Alias Get-PSResource ).Definition | Should - BeExactly ' Get-InstalledPSResource'
145
154
}
146
155
147
- # Windows only
148
- It " Get resource under CurrentUser scope - Windows only" - Skip:(! (Get-IsWindows )) {
156
+ It " Should not throw on ErrorAction ignore when no subdirectories are found" {
157
+ { Get-InstalledPSResource - Path $TestEmptyDirectoryPath - ErrorAction ' Ignore' } | Should -Not - Throw
158
+ }
159
+
160
+ # Windows only
161
+ It " Get resource under CurrentUser scope - Windows only" - Skip:(! (Get-IsWindows )) {
149
162
$pkg = Get-InstalledPSResource - Name $testModuleName - Scope CurrentUser
150
163
$pkg [0 ].Name | Should - Be $testModuleName
151
164
$pkg [0 ].InstalledLocation.ToString().Contains(" Documents" ) | Should - Be $true
0 commit comments