109 lines
4.8 KiB
PowerShell
109 lines
4.8 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-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
|
|
}
|
|
}
|
|
} |