@@ -126,14 +126,18 @@ resources:
126126 @ { expression = " [lessOrEquals(5, 5)]" ; expected = $true }
127127 @ { expression = " [greater('b', 'a')]" ; expected = $true }
128128 @ { expression = " [greater('a', 'b')]" ; expected = $false }
129+ @ { expression = " [greater('A', 'a')]" ; expected = $false }
129130 @ { expression = " [greaterOrEquals('b', 'a')]" ; expected = $true }
130131 @ { expression = " [greaterOrEquals('a', 'b')]" ; expected = $false }
131132 @ { expression = " [greaterOrEquals('a', 'a')]" ; expected = $true }
133+ @ { expression = " [greaterOrEquals('Aa', 'aa')]" ; expected = $false }
132134 @ { expression = " [less('a', 'b')]" ; expected = $true }
133135 @ { expression = " [less('b', 'a')]" ; expected = $false }
136+ @ { expression = " [less('A', 'a')]" ; expected = $true }
134137 @ { expression = " [lessOrEquals('a', 'b')]" ; expected = $true }
135138 @ { expression = " [lessOrEquals('b', 'a')]" ; expected = $false }
136139 @ { expression = " [lessOrEquals('a', 'a')]" ; expected = $true }
140+ @ { expression = " [lessOrEquals('aa', 'Aa')]" ; expected = $false }
137141 @ { expression = " [and(true, true)]" ; expected = $true }
138142 @ { expression = " [and(true, false)]" ; expected = $false }
139143 @ { expression = " [or(false, true)]" ; expected = $true }
@@ -160,4 +164,26 @@ resources:
160164 $LASTEXITCODE | Should - Be 0 - Because (Get-Content $TestDrive / error.log - Raw | Out-String )
161165 $out.results [0 ].result.actualState.output | Should - Be $expected - Because ($out | ConvertTo-Json - Depth 10 | Out-String )
162166 }
167+
168+ It ' Comparison functions handle type mismatches: <expression>' - TestCases @ (
169+ @ { expression = " [greater('a', 1)]" }
170+ @ { expression = " [greaterOrEquals('5', 3)]" }
171+ @ { expression = " [less(1, 'b')]" }
172+ @ { expression = " [lessOrEquals(5, 'a')]" }
173+ ) {
174+ param ($expression )
175+ $yaml = @"
176+ `$ schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
177+ resources:
178+ - name: echo
179+ type: Microsoft.DSC.Debug/Echo
180+ properties:
181+ output: "$expression "
182+ "@
183+ $out = dsc config get - i $yaml 2> $TestDrive / error.log
184+ $LASTEXITCODE | Should - Be 2
185+ $log = Get-Content - Path $TestDrive / error.log - Raw
186+ $log | Should - BeLike " *ERROR* Arguments must be of the same type*"
187+
188+ }
163189}
0 commit comments