106 lines
20 KiB
PowerShell
106 lines
20 KiB
PowerShell
|
$here = (Split-Path -Parent $MyInvocation.MyCommand.Path)
|
||
|
. "$here.ps1"
|
||
|
|
||
|
Describe "Process" {
|
||
|
Mock -CommandName Get-EnvironmentVariable -MockWith { throw 'Asked for non-Process paths' }
|
||
|
Mock -CommandName Set-EnvironmentVariable -MockWith { throw 'Should not set non-Process paths' }
|
||
|
|
||
|
# This simulates a simple real-world experience
|
||
|
Context "Prepend terraform path / move it around" {
|
||
|
Mock -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Process' } -MockWith { return "C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Airtame;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Amazon\AWSCLI\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\GitExtensions\;C:\Program Files (x86)\dotnet-core-uninstall\;C:\Program Files\Git\cmd;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\LinqPad5;C:\Users\cbrand\AppData\Roaming\npm;C:\Users\cbrand\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cbrand\.dotnet\tools;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1\bin" }
|
||
|
Mock -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'User' } -MockWith { return "C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\LinqPad5;C:\Users\cbrand\AppData\Roaming\npm;C:\Users\cbrand\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cbrand\.dotnet\tools;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1\bin;" }
|
||
|
Mock -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Machine' } -MockWith { return "C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Airtame;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Amazon\AWSCLI\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\GitExtensions\;C:\Program Files (x86)\dotnet-core-uninstall\;C:\Program Files\Git\cmd" }
|
||
|
Mock -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Process' } -MockWith {
|
||
|
$Value | Should -Be "C:\ProgramData\terraform;C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Airtame;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Amazon\AWSCLI\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\GitExtensions\;C:\Program Files (x86)\dotnet-core-uninstall\;C:\Program Files\Git\cmd;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\LinqPad5;C:\Users\cbrand\AppData\Roaming\npm;C:\Users\cbrand\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cbrand\.dotnet\tools;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1\bin"
|
||
|
}
|
||
|
Mock -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'User' } -MockWith {
|
||
|
# Note that this loses the trailing ; which doesn't show up well in massively sidescrolling situations
|
||
|
$Value | Should -Be "C:\ProgramData\terraform;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\LinqPad5;C:\Users\cbrand\AppData\Roaming\npm;C:\Users\cbrand\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cbrand\.dotnet\tools;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1\bin"
|
||
|
}
|
||
|
Mock -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Machine' } -MockWith {
|
||
|
$Value | Should -Be "C:\ProgramData\terraform;C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Airtame;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Amazon\AWSCLI\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\GitExtensions\;C:\Program Files (x86)\dotnet-core-uninstall\;C:\Program Files\Git\cmd"
|
||
|
}
|
||
|
|
||
|
It 'Does not throw' {
|
||
|
{ Set-PathVariable -StoreName 'Any' -Prepend 'C:\ProgramData\terraform' } | Should -Not -Throw
|
||
|
}
|
||
|
|
||
|
It 'Called the Set-EnvironmentVariable correctly' {
|
||
|
Assert-MockCalled -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'User' } -Times 1
|
||
|
}
|
||
|
|
||
|
It 'Called the Set-EnvironmentVariable correctly' {
|
||
|
Assert-MockCalled -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Machine' } -Times 1
|
||
|
}
|
||
|
|
||
|
It 'Called the Set-EnvironmentVariable correctly' {
|
||
|
Assert-MockCalled -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Process' } -Times 1
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# This simulates a simple real-world experience with bad params
|
||
|
Context "Prepend terraform path / move it around - but with bad params" {
|
||
|
Mock -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Process' } -MockWith { return "C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Airtame;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Amazon\AWSCLI\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\GitExtensions\;C:\Program Files (x86)\dotnet-core-uninstall\;C:\Program Files\Git\cmd;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\LinqPad5;C:\Users\cbrand\AppData\Roaming\npm;C:\Users\cbrand\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cbrand\.dotnet\tools;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1\bin" }
|
||
|
Mock -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'User' } -MockWith { return "C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\LinqPad5;C:\Users\cbrand\AppData\Roaming\npm;C:\Users\cbrand\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cbrand\.dotnet\tools;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1\bin;" }
|
||
|
Mock -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Machine' } -MockWith { return "C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Airtame;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Amazon\AWSCLI\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\GitExtensions\;C:\Program Files (x86)\dotnet-core-uninstall\;C:\Program Files\Git\cmd" }
|
||
|
Mock -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Process' } -MockWith {
|
||
|
$Value | Should -Be "C:\ProgramData\terraform;C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Airtame;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Amazon\AWSCLI\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\GitExtensions\;C:\Program Files (x86)\dotnet-core-uninstall\;C:\Program Files\Git\cmd;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\LinqPad5;C:\Users\cbrand\AppData\Roaming\npm;C:\Users\cbrand\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cbrand\.dotnet\tools;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1\bin"
|
||
|
}
|
||
|
Mock -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'User' } -MockWith {
|
||
|
# Note that this loses the trailing ; which doesn't show up well in massively sidescrolling situations
|
||
|
$Value | Should -Be "C:\ProgramData\terraform;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\LinqPad5;C:\Users\cbrand\AppData\Roaming\npm;C:\Users\cbrand\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cbrand\.dotnet\tools;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1\bin"
|
||
|
}
|
||
|
Mock -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Machine' } -MockWith {
|
||
|
$Value | Should -Be "C:\ProgramData\terraform;C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Airtame;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Amazon\AWSCLI\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\GitExtensions\;C:\Program Files (x86)\dotnet-core-uninstall\;C:\Program Files\Git\cmd"
|
||
|
}
|
||
|
|
||
|
It 'Does not throw' {
|
||
|
# Listen, sometimes we make bad param decisions. It happens.
|
||
|
{ Set-PathVariable -StoreName 'Any' -Prepend 'C:\ProgramData\terraform',"" -Remove @($null) -Append "","" } | Should -Not -Throw
|
||
|
}
|
||
|
|
||
|
It 'Called the Set-EnvironmentVariable correctly' {
|
||
|
Assert-MockCalled -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'User' } -Times 1
|
||
|
}
|
||
|
|
||
|
It 'Called the Set-EnvironmentVariable correctly' {
|
||
|
Assert-MockCalled -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Machine' } -Times 1
|
||
|
}
|
||
|
|
||
|
It 'Called the Set-EnvironmentVariable correctly' {
|
||
|
Assert-MockCalled -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Process' } -Times 1
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Context "Does nothing if there is nothing to do" {
|
||
|
Mock -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Process' } -MockWith { return "C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Airtame;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Amazon\AWSCLI\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\GitExtensions\;C:\Program Files (x86)\dotnet-core-uninstall\;C:\Program Files\Git\cmd;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\LinqPad5;C:\Users\cbrand\AppData\Roaming\npm;C:\Users\cbrand\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cbrand\.dotnet\tools;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1\bin" }
|
||
|
Mock -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'User' } -MockWith { return "C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\LinqPad5;C:\Users\cbrand\AppData\Roaming\npm;C:\Users\cbrand\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cbrand\.dotnet\tools;C:\Users\cbrand\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1\bin;" }
|
||
|
Mock -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Machine' } -MockWith { return "C:\Program Files (x86)\Parallels\Parallels Tools\Applications;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Airtame;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\ProgramData\chocolatey\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Amazon\AWSCLI\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\GitExtensions\;C:\Program Files (x86)\dotnet-core-uninstall\;C:\Program Files\Git\cmd" }
|
||
|
Mock -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Process' } -MockWith {
|
||
|
throw 'This should not get called'
|
||
|
}
|
||
|
Mock -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'User' } -MockWith {
|
||
|
throw 'This should not get called'
|
||
|
}
|
||
|
Mock -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Machine' } -MockWith {
|
||
|
throw 'This should not get called'
|
||
|
}
|
||
|
|
||
|
It 'Does not throw' {
|
||
|
# Listen, sometimes we make bad param decisions. It happens.
|
||
|
{ Set-PathVariable -StoreName 'Any' -Prepend "" -Remove @($null) -Append "","" } | Should -Not -Throw
|
||
|
}
|
||
|
|
||
|
It 'Called the Set-EnvironmentVariable correctly' {
|
||
|
Assert-MockCalled -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'User' } -Times 0
|
||
|
}
|
||
|
|
||
|
It 'Called the Set-EnvironmentVariable correctly' {
|
||
|
Assert-MockCalled -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Machine' } -Times 0
|
||
|
}
|
||
|
|
||
|
It 'Called the Set-EnvironmentVariable correctly' {
|
||
|
Assert-MockCalled -CommandName Set-EnvironmentVariable -ParameterFilter { $Name -eq 'Path' -and $StoreName -eq 'Process' } -Times 0
|
||
|
}
|
||
|
}
|
||
|
}
|