ps/Modules/Alkami.PowerShell.Choco/Public/Select-UniqueServerPackages.Tests.ps1

83 lines
2.8 KiB
PowerShell
Raw 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 "Select-UniqueServerPackages" {
function Get-PackageObject{
param(
$packageName,
$packageVersion
)
$properties = @{ Name = $packageName; Version = $packageVersion; Feed = $null; Tags = $null; IsService = $null; StartMode = $null}
$package = New-Object -TypeName PSObject -Prop $properties;
return $package
}
Context "When Supplied Package Array Is Empty" {
$packages = [System.Collections.ArrayList]::new()
$uniquePackages = Select-UniqueServerPackages $packages
It "Returns Null"{
$uniquePackages | Should -Be $null
}
}
Context "When Supplied Package Array Has a Single Entry" {
$packages = [System.Collections.ArrayList]::new()
$packageObject = Get-PackageObject -packageName "Alkami.FakeService1" -packageVersion "1.0.0"
$packages.Add($packageObject)
$uniquePackages = [array](Select-UniqueServerPackages $packages)
It "Returns a Single Entry"{
$uniquePackages.Count | Should -Be 1
}
}
Context "When Supplied Duplicate Packages" {
$packages = [System.Collections.ArrayList]::new()
# Define 3 duplicate packages.
$packageObject1 = Get-PackageObject -packageName "Alkami.FakeService1" -packageVersion "1.0.0"
$packageObject2 = Get-PackageObject -packageName "Alkami.FakeService1" -packageVersion "1.0.0"
$packageObject3 = Get-PackageObject -packageName "Alkami.FakeService1" -packageVersion "1.0.0"
$packages.Add($packageObject1)
$packages.Add($packageObject2)
$packages.Add($packageObject3)
$uniquePackages = [array](Select-UniqueServerPackages $packages)
It "Returns Unique Entries"{
$uniquePackages.Count | Should -Be 1
}
}
Context "When Supplied Unique Pakcages"{
$packages = [System.Collections.ArrayList]::new()
$packageObject1 = Get-PackageObject -packageName "Alkami.FakeService1" -packageVersion "1.0.0"
$packageObject2 = Get-PackageObject -packageName "Alkami.FakeService2" -packageVersion "1.0.0"
$packageObject3 = Get-PackageObject -packageName "Alkami.FakeService3" -packageVersion "1.0.0"
$packages.Add($packageObject1)
$packages.Add($packageObject2)
$packages.Add($packageObject3)
$uniquePackages = [array](Select-UniqueServerPackages $packages)
It "Returns All Entries"{
$uniquePackages.Count | Should -Be 3
}
}
}