101 lines
3.9 KiB
PowerShell
101 lines
3.9 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-InstallPackages" {
|
||
|
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 InstallPackages is Null or Empty"{
|
||
|
|
||
|
$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"
|
||
|
|
||
|
$packages.Add($packageObject1)
|
||
|
$packages.Add($packageObject2)
|
||
|
|
||
|
It "Returns Packages on Null"{
|
||
|
$installPackages = $null
|
||
|
$returnedInstallPackages = Select-InstallPackages -Packages $packages -InstallPackages $installPackages
|
||
|
|
||
|
$returnedInstallPackages | Should -Be $packages
|
||
|
}
|
||
|
|
||
|
It "Returns Packages on Empty"{
|
||
|
$installPackages = [System.Collections.ArrayList]::new()
|
||
|
$returnedInstallPackages = Select-InstallPackages -Packages $packages -InstallPackages $installPackages
|
||
|
|
||
|
$returnedInstallPackages | Should -Be $packages
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Context "When Given a Packages Array with Null Entries"{
|
||
|
$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 = $null
|
||
|
|
||
|
$packages.Add($packageObject1)
|
||
|
$packages.Add($packageObject2)
|
||
|
$packages.Add($packageObject3)
|
||
|
|
||
|
It "Strips Null Entries"{
|
||
|
$installPackages = [System.Collections.ArrayList]::new()
|
||
|
$returnedInstallPackages = Select-InstallPackages -Packages $packages -InstallPackages $installPackages
|
||
|
|
||
|
$returnedInstallPackages.Count | Should -Be 2
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Context "When Given the Same Package in Both Arrays" {
|
||
|
|
||
|
$packages = [System.Collections.ArrayList]::new()
|
||
|
$installPackages = [System.Collections.ArrayList]::new()
|
||
|
|
||
|
$packageObject1 = Get-PackageObject -packageName "Alkami.FakeService1" -packageVersion "1.0.0"
|
||
|
$packageObject2 = Get-PackageObject -packageName "Alkami.FakeService1" -packageVersion "1.7.2"
|
||
|
|
||
|
$packages.Add($packageObject1)
|
||
|
$installPackages.Add($packageObject2)
|
||
|
|
||
|
It "Takes the Value from InstallPackages" {
|
||
|
$returnedInstallPackages = Select-InstallPackages -Packages $packages -InstallPackages $installPackages
|
||
|
|
||
|
$returnedInstallPackages[0].Version | Should -Be "1.7.2"
|
||
|
}
|
||
|
}
|
||
|
Context "When Given New Packages In InstallPackages"{
|
||
|
|
||
|
$packages = [System.Collections.ArrayList]::new()
|
||
|
$installPackages = [System.Collections.ArrayList]::new()
|
||
|
|
||
|
$packageObject1 = Get-PackageObject -packageName "Alkami.FakeService1" -packageVersion "1.0.0"
|
||
|
$packageObject2 = Get-PackageObject -packageName "Alkami.FakeService2" -packageVersion "1.0.0"
|
||
|
|
||
|
$packages.Add($packageObject1)
|
||
|
$installPackages.Add($packageObject2)
|
||
|
|
||
|
It "Adds the New Values to Packages"{
|
||
|
$returnedInstallPackages = Select-InstallPackages -Packages $packages -InstallPackages $installPackages
|
||
|
|
||
|
$returnedInstallPackages.Name -Contains 'Alkami.FakeService1' | Should -BeTrue
|
||
|
$returnedInstallPackages.Name -Contains 'Alkami.FakeService2' | Should -BeTrue
|
||
|
}
|
||
|
}
|
||
|
}
|