61 lines
2.1 KiB
PowerShell
61 lines
2.1 KiB
PowerShell
|
|
||
|
Import-Module Pester
|
||
|
Import-Module .\Requirements
|
||
|
|
||
|
|
||
|
Describe "Invoke-ChecklistRequirement" {
|
||
|
|
||
|
It "Should write to host correctly" {
|
||
|
# convert Host stream to array by writing to then reading from file
|
||
|
$tempFile = "$env:TEMP\$(New-Guid).out.txt"
|
||
|
try {
|
||
|
Invoke-ChecklistRequirement `
|
||
|
-Describe "Simple Requirement" `
|
||
|
-Test { $script:ValidRequirementHasRun } `
|
||
|
-Set { $script:ValidRequirementHasRun = $true } `
|
||
|
*> $tempFile
|
||
|
$output = Get-Content $tempFile
|
||
|
$loggedOutput = $output | ? {$_.Trim()}
|
||
|
$clearedOutput = $output | ? {-not $_.Trim()}
|
||
|
$loggedOutput | % {$_ | Should -Match "^\d\d:\d\d:\d\d \[ . \] Simple Requirement$"}
|
||
|
$clearedOutput.Count | Should -Be 1
|
||
|
$loggedOutput.Count | Should -Be 2
|
||
|
} finally {
|
||
|
Remove-Item $tempFile
|
||
|
}
|
||
|
}
|
||
|
|
||
|
It "Should not 'Set' if in desired state" {
|
||
|
$script:NotSetIfInDesiredState = 0
|
||
|
Invoke-ChecklistRequirement `
|
||
|
-Describe "Simple Requirement" `
|
||
|
-Test { $true } `
|
||
|
-Set { $script:NotSetIfInDesiredState++ } `
|
||
|
*> $null
|
||
|
$script:NotSetIfInDesiredState | Should -Be 0
|
||
|
}
|
||
|
|
||
|
It "Should 'Set' if in desired state" {
|
||
|
$script:SetIfInDesiredState = 0
|
||
|
Invoke-ChecklistRequirement `
|
||
|
-Describe "Simple Requirement" `
|
||
|
-Test {$script:SetIfInDesiredState -gt 0} `
|
||
|
-Set {$script:SetIfInDesiredState++} `
|
||
|
*> $null
|
||
|
$script:SetIfInDesiredState | Should -Be 1
|
||
|
}
|
||
|
|
||
|
It "Should validate once set" {
|
||
|
$script:TestOnceSetIsTestCount = 0
|
||
|
$script:TestOnceSetIsSet = $false
|
||
|
Invoke-ChecklistRequirement `
|
||
|
-Describe "Simple Requirement" `
|
||
|
-Test {$script:TestOnceSetIsTestCount += 1; $script:TestOnceSetIsSet} `
|
||
|
-Set {$script:TestOnceSetIsSet = $true} `
|
||
|
*> $null
|
||
|
$script:TestOnceSetIsSet | Should -Be $true
|
||
|
$script:TestOnceSetIsTestCount | Should -Be 2
|
||
|
}
|
||
|
|
||
|
}
|