. $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 } } }