ps/Modules/Alkami.PowerShell.Common/Public/Get-AlkamiInstallationDrive.tests.ps1

48 lines
2.5 KiB
PowerShell
Raw Permalink Normal View History

2023-05-30 22:51:22 -07:00
. $PSScriptRoot\..\..\Load-PesterModules.ps1
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.tests\.', '.'
$functionPath = Join-Path -Path $here -ChildPath $sut
Write-Host "Overriding SUT: $functionPath"
Import-Module $functionPath -Force
$moduleForMock = ""
Describe "Main" {
$FAKE_ALKAMI_INSTALLATION_DRIVE = "A:"
$FAKE_SYSTEM_DRIVE = "T:"
Mock -CommandName Get-LogLeadName -ModuleName $moduleForMock -MockWith {}
Mock -CommandName Write-Host -ModuleName $moduleForMock -MockWith {}
Mock -CommandName Write-Warning -ModuleName $moduleForMock -MockWith {}
Mock -CommandName Write-Error -ModuleName $moduleForMock -MockWith {}
Mock -CommandName Get-EnvironmentVariable -ModuleName $moduleForMock -MockWith {}
Context "Happy_Path" {
It "Should_call_Get-LogLeadName" {
$result = Get-AlkamiInstallationDrive
Assert-MockCalled -CommandName Get-LogLeadName -Times 1 -Scope It
}
It "Should_get_ALKAMI_INSTALLATION_DRIVE_env_var" {
Mock -CommandName Get-EnvironmentVariable -ModuleName $moduleForMock -ParameterFilter { $Name -eq 'ALKAMI_INSTALLATION_DRIVE' } -MockWith { return $FAKE_ALKAMI_INSTALLATION_DRIVE }
$result = Get-AlkamiInstallationDrive
Assert-MockCalled -CommandName Get-EnvironmentVariable -Times 1 -Exactly -Scope It
Assert-MockCalled -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'ALKAMI_INSTALLATION_DRIVE' } -Times 1 -Scope It
Assert-MockCalled -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'SystemDrive' } -Times 0 -Exactly -Scope It
$result | Should -Be $FAKE_ALKAMI_INSTALLATION_DRIVE
}
}
Context "Unhappy_Path" {
It "Uses_SystemDrive_When_ALKAMI_INSTALLATION_DRIVE_is_nullorempty" {
Mock -CommandName Get-EnvironmentVariable -ModuleName $moduleForMock -ParameterFilter { $Name -eq 'ALKAMI_INSTALLATION_DRIVE' } -MockWith { return $null }
Mock -CommandName Get-EnvironmentVariable -ModuleName $moduleForMock -ParameterFilter { $Name -eq 'SystemDrive' } -MockWith { return $FAKE_SYSTEM_DRIVE }
$result = Get-AlkamiInstallationDrive
Assert-MockCalled -CommandName Get-EnvironmentVariable -Times 2 -Exactly -Scope It
Assert-MockCalled -CommandName Get-EnvironmentVariable -ParameterFilter { $Name -eq 'SystemDrive' } -Times 1 -Exactly -Scope It
$result | Should -Be $FAKE_SYSTEM_DRIVE
}
}
}