. $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 } } }