83 lines
2.8 KiB
PowerShell
83 lines
2.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 = ""
|
||
|
|
||
|
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
|
||
|
}
|
||
|
}
|
||
|
}
|