-
Notifications
You must be signed in to change notification settings - Fork 0
/
New-EnvVar.Tests.ps1
38 lines (34 loc) · 1.39 KB
/
New-EnvVar.Tests.ps1
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
. "${PSScriptRoot}\..\src\New-EnvVar.ps1"
Describe "New-EnvVar" -Tag "New", "EnvVar", "Docker" {
BeforeAll {
$script:OriginalPSDefaultParameterValues = $Global:PSDefaultParameterValues.Clone()
If (!(Test-Path env:\APPVEYOR)) {
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent()
If ($currentUser.Name -ne 'ContainerAdministrator') {
$Global:PSDefaultParameterValues["It:Skip"] = $true
}
}
}
AfterAll{
$Global:PSDefaultParameterValues = $script:OriginalPSDefaultParameterValues
}
@(
[System.EnvironmentVariableTarget]::Process,
[System.EnvironmentVariableTarget]::User,
[System.EnvironmentVariableTarget]::Machine
) | ForEach-Object {
$scope = $_
Context "[System.EnvironmentVariableTarget]::${scope}" {
$name = ([System.Environment]::GetEnvironmentVariables($scope)).GetEnumerator() | Select-Object -First 1 -ExpandProperty "Key"
$value = [System.Environment]::GetEnvironmentVariable($name, $scope)
It "Should not create '${name}', it already exists" {
{ New-EnvVar -Name $name -Value $value -Scope $scope } | Should -Throw
}
$name = "${name}_COPY"
It "Should create '${name}' variable" {
{ New-EnvVar -Name $name -Value $value -Scope $scope } | Should -Not -Throw
[System.Environment]::GetEnvironmentVariable($name, $scope) | Should -Be $value
}
}
}
}