@@ -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 }
@@ -138,4 +164,26 @@ resources:
138
164
$LASTEXITCODE | Should - Be 0 - Because (Get-Content $TestDrive / error.log - Raw | Out-String )
139
165
$out.results [0 ].result.actualState.output | Should - Be $expected - Because ($out | ConvertTo-Json - Depth 10 | Out-String )
140
166
}
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
+ }
141
189
}
0 commit comments