Add parameter tests

This commit is contained in:
Wes Carroll
2019-04-05 17:16:37 -04:00
parent 6d86fbea23
commit 2a8837aff7
+59 -1
View File
@@ -16,4 +16,62 @@ Describe $file.BaseName -Tag 'Unit' {
$null = [System.Management.Automation.PSParser]::Tokenize($contents, [ref]$errors)
$errors | Should -HaveCount 0
}
}
Context "$($file.BaseName)::Parameter Unit Tests" {
it "has a mandatory string parameter for the vpgName" {
Get-Command $file.BaseName | Should -HaveParameter vpgName
Get-Command $file.BaseName | Should -HaveParameter vpgName -Type string
Get-Command $file.BaseName | Should -HaveParameter vpgName -Mandatory
}
it "has a non-mandatory string parameter for the checkpoint" {
Get-Command $file.BaseName | Should -HaveParameter checkpointIdentifier
Get-Command $file.BaseName | Should -HaveParameter checkpointIdentifier -Type string
Get-Command $file.BaseName | Should -HaveParameter checkpointIdentifier -Not -Mandatory
}
it "has a non-mandatory string parameter for the commit policy" {
Get-Command $file.BaseName | Should -HaveParameter commitPolicy
Get-Command $file.BaseName | Should -HaveParameter commitPolicy -Type string
Get-Command $file.BaseName | Should -HaveParameter commitPolicy -Not -Mandatory
Get-Command $file.BaseName | Should -HaveParameter commitPolicy -DefaultValue "Rollback"
}
it "has a non-mandatory int parameter for the shutdown policy" {
Get-Command $file.BaseName | Should -HaveParameter shutdownPolicy
Get-Command $file.BaseName | Should -HaveParameter shutdownPolicy -Type int
Get-Command $file.BaseName | Should -HaveParameter shutdownPolicy -Not -Mandatory
Get-Command $file.BaseName | Should -HaveParameter shutdownPolicy -DefaultValue 0
}
it "has a non-mandatory int parameter for the time to wait before force shutdown" {
Get-Command $file.BaseName | Should -HaveParameter timeToWaitBeforeShutdownInSec
Get-Command $file.BaseName | Should -HaveParameter timeToWaitBeforeShutdownInSec -Type int
Get-Command $file.BaseName | Should -HaveParameter timeToWaitBeforeShutdownInSec -Not -Mandatory
Get-Command $file.BaseName | Should -HaveParameter timeToWaitBeforeShutdownInSec -DefaultValue 3600
}
it "has a non-mandatory bool parameter for the reverse protection policy" {
Get-Command $file.BaseName | Should -HaveParameter reverseProtection
Get-Command $file.BaseName | Should -HaveParameter reverseProtection -Type bool
Get-Command $file.BaseName | Should -HaveParameter reverseProtection -Not -Mandatory
}
it "has a non-mandatory array string parameter for the named VMs to be failed over" {
Get-Command $file.BaseName | Should -HaveParameter vmName
Get-Command $file.BaseName | Should -HaveParameter vmName -Type string[]
Get-Command $file.BaseName | Should -HaveParameter vmName -Not -Mandatory
}
it "Supports 'SupportsShouldProcess'" {
Get-Command $file.BaseName | Should -HaveParameter WhatIf
Get-Command $file.BaseName | Should -HaveParameter Confirm
$file | Should -FileContentMatch 'SupportsShouldProcess'
$file | Should -FileContentMatch '\$PSCmdlet\.ShouldProcess\(.+\)'
}
}
Context "$($file.BaseName)::Function Unit Tests" {
#TODO
}
}