# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. Describe "BooleanParameterDCR Tests" -tags "CI" { BeforeAll { Function ParserTestSwitchCmdlet { [CmdletBinding()] param([switch]$switchParam) return $switchParam } Function ParserTestBoolCmdlet2 { [CmdletBinding()] param([bool]$First=$false) return $First } } $tests = @( @{ inputTest = 0; expected = $false }, @{ inputTest = 000; expected = $false }, @{ inputTest = 0x00; expected = $false }, @{ inputTest = 0.00; expected = $false } ) It "Test that passing zero works as the value for a Switch parameter, inputTest:,expect:" -TestCases $tests { param ( $inputTest, $expected ) [bool]$switchTestParam = $inputTest $result = ParserTestSwitchCmdlet -switchParam:$switchTestParam $result | Should -Be $expected } $tests = @( @{ inputTest = $(1 -eq 1); expected = $true }, @{ inputTest = $true; expected = $true }, @{ inputTest = $TRUE; expected = $true } ) It "Test that $true is accepted as a true value for Switch parameters, inputTest:,expect:" -TestCases $tests { param ( $inputTest, $expected ) [bool]$switchTestParam = $inputTest $result = ParserTestSwitchCmdlet -switchParam:$switchTestParam $result | Should -Be $expected } It "Test that a nullable boolean is accepted for a boolean parameter." { [System.Nullable[System.Int32]] $nullBoolVar = $false $result = ParserTestBoolCmdlet2 $nullBoolVar $result | Should -BeFalse $result = ParserTestBoolCmdlet2 -First:$nullBoolVar $result | Should -BeFalse $result = ParserTestBoolCmdlet2 -First $nullBoolVar $result | Should -BeFalse } }