103 lines
4.3 KiB
PowerShell
103 lines
4.3 KiB
PowerShell
|
. $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 = ""
|
||
|
$currentErrorActionPreference = $ErrorActionPreference
|
||
|
$ErrorActionPreference = "stop"
|
||
|
|
||
|
Describe "Get-EnvironmentData" {
|
||
|
$fakeDotNetConfigPath = Join-Path -Path $TestDrive -ChildPath "machine.config"
|
||
|
# Return each of the settings based on parameter filters
|
||
|
Mock -CommandName Write-Host -ModuleName $moduleForMock -MockWith {}
|
||
|
Mock -CommandName Write-Warning -ModuleName $moduleForMock -MockWith {}
|
||
|
|
||
|
Mock -CommandName Get-UncPath -ModuleName $moduleForMock -MockWith { return $fakeDotNetConfigPath }
|
||
|
Mock -CommandName Read-XmlFile -ModuleName $moduleForMock -MockWith {}
|
||
|
Mock -CommandName Invoke-Parallel -ModuleName $moduleForMock -MockWith {}
|
||
|
|
||
|
Context "When Successfully Getting EnvironmentData from AppSettings" {
|
||
|
$packageData = @{}
|
||
|
$packageData.DisableMicroserviceNewRelic = $true
|
||
|
$appPackage1 = New-DummyPackageInstallationData -PackageName "app.package1" -PackageVersion "1.0.0" -IsFullScale
|
||
|
$appPackage2 = New-DummyPackageInstallationData -PackageName "app.package2" -PackageVersion "1.0.0" -IsFullScale
|
||
|
|
||
|
$packageArray = @($appPackage1, $appPackage2)
|
||
|
|
||
|
$packageData.AppPackagesToInstall = $packageArray
|
||
|
|
||
|
# these tests were essentially "does Get-EnvironmentThing work?"
|
||
|
# there's no business logic to them
|
||
|
# It "It Gets EnvironmentName" {
|
||
|
# $data = Get-EnvironmentData $packageData
|
||
|
|
||
|
# $data.EnvironmentName | Should -Match "UnitTest.Env"
|
||
|
# }
|
||
|
|
||
|
# It "It Gets EnvironmentType" {
|
||
|
# $data = Get-EnvironmentData $packageData
|
||
|
|
||
|
# $data.EnvironmentType | Should -Match "UnitTest.Type"
|
||
|
# }
|
||
|
|
||
|
# It "It Gets EnvironmentNameSafeDesignation" {
|
||
|
# $data = Get-EnvironmentData $packageData
|
||
|
|
||
|
# $data.EnvironmentNameSafeDesignation | Should -Match "UTT"
|
||
|
# }
|
||
|
|
||
|
# It "It Gets EnvironmentHosting" {
|
||
|
# $data = Get-EnvironmentData $packageData
|
||
|
|
||
|
# $data.EnvironmentHosting | Should -Match "local"
|
||
|
# }
|
||
|
}
|
||
|
|
||
|
Context "When Getting Data from Tags" {
|
||
|
$packageData = @{}
|
||
|
$packageData.AppServers = @("APP123TEST.fh.local")
|
||
|
$packageData.DisableMicroserviceNewRelic = $true
|
||
|
$appPackage1 = New-DummyPackageInstallationData -PackageName "app.package1" -PackageVersion "1.0.0" -IsFullScale
|
||
|
$appPackage2 = New-DummyPackageInstallationData -PackageName "app.package2" -PackageVersion "1.0.0" -IsFullScale
|
||
|
|
||
|
$packageArray = @($appPackage1, $appPackage2)
|
||
|
|
||
|
$packageData.AppPackagesToInstall = $packageArray
|
||
|
|
||
|
Mock Get-InstanceTags -MockWith { # return tags
|
||
|
$tag1 = @{
|
||
|
PSComputerName = "Test.Machine"
|
||
|
Key = "alk:env"
|
||
|
Value = "dev"
|
||
|
}
|
||
|
|
||
|
$tag2 = @{
|
||
|
PSComputerName = "Test.Machine"
|
||
|
Key = "alk:designation"
|
||
|
Value = "FAKEVALUE"
|
||
|
}
|
||
|
return @($tag1, $tag2)
|
||
|
}
|
||
|
|
||
|
Mock -CommandName Get-DesignationTagNameByEnvironment -ModuleName $moduleForMock -MockWith {
|
||
|
return "designation"
|
||
|
}
|
||
|
|
||
|
# How was this mocked? It's a degree of separation away. It shouldnot have been being used.∫
|
||
|
# Mock Get-AppSetting -MockWith {return "UnitTest.Env"} -ParameterFilter {$Key -eq "Environment.Name"}
|
||
|
# Mock Get-AppSetting -MockWith {return "UnitTest.Type"} -ParameterFilter {$Key -eq "Environment.Type"}
|
||
|
# Mock Get-AppSetting -MockWith {return "local"} -ParameterFilter {$Key -eq "Environment.Hosting"}
|
||
|
# No available value locally
|
||
|
Mock -CommandName Get-AppSetting -ModuleName $moduleForMock -MockWith { return $null } -ParameterFilter { $Key -eq "Environment.NameSafeDesignation" }
|
||
|
|
||
|
Mock -CommandName Write-Error -ModuleName $moduleForMock -MockWith {}
|
||
|
|
||
|
It "It Gets EnvironmentNameSafeDesignation" {
|
||
|
$data = Get-EnvironmentData $packageData
|
||
|
|
||
|
$data.EnvironmentNameSafeDesignation | Should -Match "FAKEVALUE"
|
||
|
}
|
||
|
}
|
||
|
}
|