@@ -112,6 +112,32 @@ resources:
112
112
@ { expression = " [equals('a', 'a')]" ; expected = $true }
113
113
@ { expression = " [equals('a', 'b')]" ; expected = $false }
114
114
@ { expression = " [not(equals('a', 'b'))]" ; expected = $true }
115
+ @ { expression = " [greater(5, 3)]" ; expected = $true }
116
+ @ { expression = " [greater(3, 5)]" ; expected = $false }
117
+ @ { expression = " [greater(5, 5)]" ; expected = $false }
118
+ @ { expression = " [greaterOrEquals(5, 3)]" ; expected = $true }
119
+ @ { expression = " [greaterOrEquals(3, 5)]" ; expected = $false }
120
+ @ { expression = " [greaterOrEquals(5, 5)]" ; expected = $true }
121
+ @ { expression = " [less(3, 5)]" ; expected = $true }
122
+ @ { expression = " [less(5, 3)]" ; expected = $false }
123
+ @ { expression = " [less(5, 5)]" ; expected = $false }
124
+ @ { expression = " [lessOrEquals(3, 5)]" ; expected = $true }
125
+ @ { expression = " [lessOrEquals(5, 3)]" ; expected = $false }
126
+ @ { expression = " [lessOrEquals(5, 5)]" ; expected = $true }
127
+ @ { expression = " [greater('b', 'a')]" ; expected = $true }
128
+ @ { expression = " [greater('a', 'b')]" ; expected = $false }
129
+ @ { expression = " [greater('A', 'a')]" ; expected = $false }
130
+ @ { expression = " [greaterOrEquals('b', 'a')]" ; expected = $true }
131
+ @ { expression = " [greaterOrEquals('a', 'b')]" ; expected = $false }
132
+ @ { expression = " [greaterOrEquals('a', 'a')]" ; expected = $true }
133
+ @ { expression = " [greaterOrEquals('Aa', 'aa')]" ; expected = $false }
134
+ @ { expression = " [less('a', 'b')]" ; expected = $true }
135
+ @ { expression = " [less('b', 'a')]" ; expected = $false }
136
+ @ { expression = " [less('A', 'a')]" ; expected = $true }
137
+ @ { expression = " [lessOrEquals('a', 'b')]" ; expected = $true }
138
+ @ { expression = " [lessOrEquals('b', 'a')]" ; expected = $false }
139
+ @ { expression = " [lessOrEquals('a', 'a')]" ; expected = $true }
140
+ @ { expression = " [lessOrEquals('aa', 'Aa')]" ; expected = $false }
115
141
@ { expression = " [and(true, true)]" ; expected = $true }
116
142
@ { expression = " [and(true, false)]" ; expected = $false }
117
143
@ { expression = " [or(false, true)]" ; expected = $true }
@@ -142,4 +168,26 @@ resources:
142
168
$LASTEXITCODE | Should - Be 0 - Because (Get-Content $TestDrive / error.log - Raw | Out-String )
143
169
$out.results [0 ].result.actualState.output | Should - Be $expected - Because ($out | ConvertTo-Json - Depth 10 | Out-String )
144
170
}
171
+
172
+ It ' Comparison functions handle type mismatches: <expression>' - TestCases @ (
173
+ @ { expression = " [greater('a', 1)]" }
174
+ @ { expression = " [greaterOrEquals('5', 3)]" }
175
+ @ { expression = " [less(1, 'b')]" }
176
+ @ { expression = " [lessOrEquals(5, 'a')]" }
177
+ ) {
178
+ param ($expression )
179
+ $yaml = @"
180
+ `$ schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
181
+ resources:
182
+ - name: echo
183
+ type: Microsoft.DSC.Debug/Echo
184
+ properties:
185
+ output: "$expression "
186
+ "@
187
+ $out = dsc config get - i $yaml 2> $TestDrive / error.log
188
+ $LASTEXITCODE | Should - Be 2
189
+ $log = Get-Content - Path $TestDrive / error.log - Raw
190
+ $log | Should - BeLike " *ERROR* Arguments must be of the same type*"
191
+
192
+ }
145
193
}
0 commit comments