ps/Modules/Alkami.DevOps.Installation/Public/Get-BadPackages.Tests.ps1

109 lines
4.8 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 = ""
$currentErrorActionPreference = $ErrorActionPreference
$ErrorActionPreference = "stop"
Describe "Get-BadPackages" {
Mock -CommandName Write-Host -MockWith {}
Mock -CommandName Write-Warning -MockWith {}
Mock -CommandName Write-Error -MockWith {}
$webPackage1 = New-DummyPackageInstallationData -PackageName "web.package1" -PackageVersion "1.0.0" -IsWebOnly
$webPackage2 = New-DummyPackageInstallationData -PackageName "web.package2" -PackageVersion "1.0.0" -IsWebOnly
$appPackage1 = New-DummyPackageInstallationData -PackageName "app.package1" -PackageVersion "1.0.0" -IsAppOnly
$appPackage2 = New-DummyPackageInstallationData -PackageName "app.package2" -PackageVersion "1.0.0" -IsAppOnly
$micPackage1 = New-DummyPackageInstallationData -PackageName "mic.package1" -PackageVersion "1.0.0" -IsMicOnly
$micPackage2 = New-DummyPackageInstallationData -PackageName "mic.package2" -PackageVersion "1.0.0" -IsMicOnly
$appPackageArray = @($appPackage1, $appPackage2)
$webPackageArray = @($webPackage1, $webPackage2)
$micPackageArray = @($micPackage1, $micPackage2)
$appServerPackageArray = @($appPackage1, $appPackage2, $webPackage1)
$webServerPackageArray = @($webPackage1, $webPackage2, $appPackage1)
$micServerPackageArray = @($micPackage1, $micPackage2, $webPackage1)
$fabServerPackageArray = @($micPackage1, $micPackage2, $webPackage1)
# Define wrapper objects
$packageData = New-PackageMetadataObject
$debugMetadata = New-Object psobject -property @{
WebServerPackages = @()
AppServerPackages = @()
MicServerPackages = @()
FabServerPackages = @()
WebPackagesToInstallMap = @{}
AppPackagesToInstallMap = @{}
ClassifiedPackagesMap = @{}
}
# Populate wrapper objects.
$packageData.AppPackagesToInstall = $appPackageArray
$packageData.WebPackagesToInstall = $webPackageArray
$packageData.MicPackagesToInstall = $micPackageArray
$debugMetadata.WebServerPackages = $webServerPackageArray
$debugMetadata.AppServerPackages = $appServerPackageArray
$debugMetadata.MicServerPackages = $micServerPackageArray
$debugMetadata.FabServerPackages = $fabServerPackageArray
$debugMetadata.ClassifiedPackagesMap["web.package1"] = $webPackage1
$debugMetadata.ClassifiedPackagesMap["web.package2"] = $webPackage2
$debugMetadata.ClassifiedPackagesMap["app.package1"] = $appPackage1
$debugMetadata.ClassifiedPackagesMap["app.package2"] = $appPackage2
$debugMetadata.ClassifiedPackagesMap["mic.package1"] = $micPackage1
$debugMetadata.ClassifiedPackagesMap["mic.package2"] = $micPackage2
Context "When Debug MetaData Has WebServerPackages" {
It "Marks Packages To Be Uninstalled From Web Servers" {
$packageData = Get-BadPackages $DebugMetadata $packageData
$packageData.BadWebPackagesToUninstall | Should -Not -BeNullOrEmpty
}
}
Context "When Debug MetaData Has AppServerPackages" {
It "Marks Packages To Be Uninstalled From App Servers" {
$packageData = Get-BadPackages $DebugMetadata $packageData
$packageData.BadAppPackagesToUninstall | Should -Not -BeNullOrEmpty
}
It "Sets the ActionType to Uninstall"{
$packageData = Get-BadPackages $DebugMetadata $packageData
$packageData.BadAppPackagesToUninstall.ActionType | Should -BeLikeExactly "Uninstall"
}
It "Sets the ActionReason to Wrong_Host_Type"{
$packageData = Get-BadPackages $DebugMetadata $packageData
$packageData.BadAppPackagesToUninstall.ActionReason | Should -BeLikeExactly "Wrong_Host_Type"
}
}
Context "When Debug MetaData Has MicServerPackages" {
It "Marks Packages To Be Uninstalled From Mic Servers" {
$packageData = Get-BadPackages $DebugMetadata $packageData
$packageData.BadMicPackagesToUninstall | Should -Not -BeNullOrEmpty }
}
Context "When Debug MetaData Has FabServerPackages" {
It "Marks Packages To Be Uninstalled From Mic Servers" {
$packageData = Get-BadPackages $DebugMetadata $packageData
$packageData.BadMicPackagesToUninstall | Should -Not -BeNullOrEmpty
}
It "Does Not Mark Packages To Be Uninstalled From Fab Servers" {
$packageData = Get-BadPackages $DebugMetadata $packageData
$packageData.BadFabPackagesToUninstall | Should -BeNullOrEmpty
}
}
}