77 lines
3.5 KiB
PowerShell
77 lines
3.5 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 "Start-ServicesChocolateyOnly" {
|
|
|
|
Context "Logic" {
|
|
|
|
It "Writes a Warning and Returns If No Choco Services are Stopped" {
|
|
|
|
Mock -CommandName Get-ChocolateyServicesToStart -ModuleName $moduleForMock -MockWith {}
|
|
Mock -CommandName Write-Warning -ModuleName $moduleForMock -MockWith {}
|
|
Mock -CommandName Start-ServicesInParallel -ModuleName $moduleForMock -MockWith {}
|
|
|
|
Start-ServicesChocolateyOnly
|
|
Assert-MockCalled -ModuleName $moduleForMock Write-Warning -Times 1 -Exactly -Scope It `
|
|
-ParameterFilter { $Message -match "No Chocolatey Services Found to Start"}
|
|
Assert-MockCalled -ModuleName $moduleForMock Start-ServicesInParallel -Times 0 -Exactly -Scope It
|
|
}
|
|
|
|
It "Uses the Supplied MaxParallel Value" {
|
|
|
|
Mock -CommandName Start-ServicesInParallel -ModuleName $moduleForMock -MockWith {}
|
|
Mock -CommandName Get-ChocolateyServicesToStart -ModuleName $moduleForMock -MockWith {
|
|
|
|
return New-Object PSObject -Property @{
|
|
ServiceName = "Alkami.Stopped.Service";
|
|
ServicePath = "C:\BogusPath\Bogus.exe";
|
|
Tier = "1";
|
|
}
|
|
}
|
|
|
|
Start-ServicesChocolateyOnly -MaxParallel 99
|
|
Assert-MockCalled -ModuleName $moduleForMock Start-ServicesInParallel -Times 1 -Exactly -Scope It `
|
|
-ParameterFilter { $maxParallel -eq 99}
|
|
}
|
|
|
|
It "Calls Start Services Split by Tier" {
|
|
|
|
Mock -CommandName Start-ServicesInParallel -ModuleName $moduleForMock -MockWith {}
|
|
Mock -CommandName Get-ChocolateyServicesToStart -ModuleName $moduleForMock -MockWith {
|
|
|
|
$tier1 = New-Object PSObject -Property @{
|
|
ServiceName = "Alkami.Tier1.Service";
|
|
ServicePath = "C:\BogusPath\Bogus.exe";
|
|
Tier = "1";
|
|
}
|
|
|
|
$tier2 = New-Object PSObject -Property @{
|
|
ServiceName = "Alkami.Tier2.Service";
|
|
ServicePath = "C:\BogusPath\Bogus.exe";
|
|
Tier = "2";
|
|
}
|
|
|
|
$tier99 = New-Object PSObject -Property @{
|
|
ServiceName = "Alkami.Tier99.Service";
|
|
ServicePath = "C:\BogusPath\Bogus.exe";
|
|
Tier = "99";
|
|
}
|
|
|
|
return @( $tier99, $tier2, $tier1 )
|
|
}
|
|
|
|
Start-ServicesChocolateyOnly
|
|
Assert-MockCalled -ModuleName $moduleForMock Start-ServicesInParallel -Times 1 -Exactly -Scope It `
|
|
-ParameterFilter { [string]$serviceNamestoStart -eq "Alkami.Tier1.Service" }
|
|
Assert-MockCalled -ModuleName $moduleForMock Start-ServicesInParallel -Times 1 -Exactly -Scope It `
|
|
-ParameterFilter { [string]$serviceNamestoStart -eq "Alkami.Tier2.Service" }
|
|
Assert-MockCalled -ModuleName $moduleForMock Start-ServicesInParallel -Times 1 -Exactly -Scope It `
|
|
-ParameterFilter { [string]$serviceNamestoStart -eq "Alkami.Tier99.Service" }
|
|
}
|
|
}
|
|
} |