testcases/deploymentTemplate/Min-And-Max-Value-Are-Numbers.test.ps1
param( [Parameter(Mandatory=$true,Position=0)] [PSObject] $TemplateObject ) # Walk thru each of the parameters in the template object foreach ($parameterInfo in $templateObject.parameters.psobject.properties) { $parameterName = $parameterInfo.Name $parameter = $parameterInfo.Value $Min = $null $Max = $null if ($parameter.psobject.properties.item('maxValue')) { if ($parameter.maxValue -isnot [long] -and $parameter.maxValue -isnot [int]) { # PS Core is interpreting the int/longs as long Write-Error "$($ParameterName) maxValue is not an [int] or [long] (it's a [$($parameter.maxValue.GetType())])" ` -ErrorId Parameter.Max.Not.Int -TargetObject $parameter continue } else { $max = $parameter.maxValue } } if ($parameter.psobject.properties.item('minValue')) { if ($parameter.minValue -isnot [long] -and $parameter.minValue -isnot [int]) { Write-Error "$($ParameterName) minValue is not an [int] or [long] (it's a [$($parameter.minValue.GetType())])" ` -ErrorId Parameter.Min.Not.Int -TargetObject $parameter continue } else { $min = $Parameter.minValue } } if ($max -eq $null -and $min -ne $null){ Write-Error "$ParameterName missing max value" -ErrorId Parameter.Missing.Max -TargetObject $parameter } if ($max -ne $null -and $min -eq $null){ Write-Error "$ParameterName missing min value" -ErrorId Parameter.Missing.Min -TargetObject $parameter } } |