@@ -18,7 +18,7 @@ Gets test management group name
18
18
#>
19
19
function Get-TestManagementGroupName
20
20
{
21
- " azgovtest4"
21
+ " azgovtest4"
22
22
}
23
23
24
24
<#
@@ -27,7 +27,7 @@ Gets test resource group group name
27
27
#>
28
28
function Get-TestResourceGroupName
29
29
{
30
- " bulenttestrg"
30
+ " bulenttestrg"
31
31
}
32
32
33
33
<#
@@ -36,7 +36,7 @@ Gets test resource id
36
36
#>
37
37
function Get-TestResourceId
38
38
{
39
- " /subscriptions/d0610b27-9663-4c05-89f8-5b4be01e86a5/resourcegroups/govintpolicyrp/providers/microsoft.network/trafficmanagerprofiles/gov-int-policy-rp"
39
+ " /subscriptions/d0610b27-9663-4c05-89f8-5b4be01e86a5/resourcegroups/govintpolicyrp/providers/microsoft.network/trafficmanagerprofiles/gov-int-policy-rp"
40
40
}
41
41
42
42
<#
@@ -45,7 +45,7 @@ Gets test policy set definition name
45
45
#>
46
46
function Get-TestPolicySetDefinitionName
47
47
{
48
- " 12b58873-e0f8-4b95-936c-86cbe7c9d697"
48
+ " 12b58873-e0f8-4b95-936c-86cbe7c9d697"
49
49
}
50
50
51
51
<#
@@ -54,7 +54,7 @@ Gets test policy definition name
54
54
#>
55
55
function Get-TestPolicyDefinitionName
56
56
{
57
- " 24813039-7534-408a-9842-eb99f45721b1"
57
+ " 24813039-7534-408a-9842-eb99f45721b1"
58
58
}
59
59
60
60
<#
@@ -63,7 +63,7 @@ Gets test policy assignment name
63
63
#>
64
64
function Get-TestPolicyAssignmentName
65
65
{
66
- " 45ab2ab7898d45ebb3087573"
66
+ " 45ab2ab7898d45ebb3087573"
67
67
}
68
68
69
69
<#
@@ -72,7 +72,7 @@ Gets test resource group group name for resource group level policy assignment (
72
72
#>
73
73
function Get-TestResourceGroupNameForPolicyAssignmentEvents
74
74
{
75
- " jilimpolicytest2"
75
+ " jilimpolicytest2"
76
76
}
77
77
78
78
<#
@@ -81,7 +81,7 @@ Gets test policy assignment name (resource group level) (for event tests)
81
81
#>
82
82
function Get-TestPolicyAssignmentNameResourceGroupLevelEvents
83
83
{
84
- " e9860612d8ec4a469f59af06"
84
+ " e9860612d8ec4a469f59af06"
85
85
}
86
86
87
87
<#
@@ -90,7 +90,7 @@ Gets test resource group group name for resource group level policy assignment (
90
90
#>
91
91
function Get-TestResourceGroupNameForPolicyAssignmentStates
92
92
{
93
- " bulenttestrg"
93
+ " bulenttestrg"
94
94
}
95
95
96
96
<#
@@ -99,7 +99,7 @@ Gets test policy assignment name (resource group level) (for state tests)
99
99
#>
100
100
function Get-TestPolicyAssignmentNameResourceGroupLevelStates
101
101
{
102
- " f4d1645d-9180-4968-99df-17234d0f7019"
102
+ " f4d1645d-9180-4968-99df-17234d0f7019"
103
103
}
104
104
105
105
<#
@@ -108,7 +108,7 @@ Gets test query interval start
108
108
#>
109
109
function Get-TestQueryIntervalStart
110
110
{
111
- " 2018-03-31 00:00:00Z"
111
+ " 2018-03-31 00:00:00Z"
112
112
}
113
113
114
114
<#
@@ -117,7 +117,25 @@ Gets test query interval end
117
117
#>
118
118
function Get-TestQueryIntervalEnd
119
119
{
120
- " 2018-05-30 00:00:00Z"
120
+ " 2018-05-30 00:00:00Z"
121
+ }
122
+
123
+ <#
124
+ . SYNOPSIS
125
+ Gets the policy assignment used in remediation tests at subscription level and below
126
+ #>
127
+ function Get-TestRemediationSubscriptionPolicyAssignmentId
128
+ {
129
+ " /subscriptions/d0610b27-9663-4c05-89f8-5b4be01e86a5/providers/Microsoft.Authorization/policyAssignments/2deae24764b447c29af7c309"
130
+ }
131
+
132
+ <#
133
+ . SYNOPSIS
134
+ Gets the policy assignment used in remediation tests at management group scope
135
+ #>
136
+ function Get-TestRemediationMgPolicyAssignmentId
137
+ {
138
+ " /providers/Microsoft.Management/managementGroups/PolicyUIMG/providers/Microsoft.Authorization/policyAssignments/326b090398a649e3858e3f23"
121
139
}
122
140
123
141
<#
@@ -126,14 +144,14 @@ Validates a list of policy events
126
144
#>
127
145
function Validate-PolicyEvents
128
146
{
129
- param ([System.Collections.Generic.List ` 1 [[Microsoft.Azure.Commands.PolicyInsights.Models.PolicyEvent ]]]$policyEvents , [int ]$count )
130
-
131
- Assert-True { $count -ge $policyEvents.Count }
132
- Assert-True { $policyEvents.Count -gt 0 }
133
- Foreach ($policyEvent in $policyEvents )
134
- {
135
- Validate- PolicyEvent $policyEvent
136
- }
147
+ param ([System.Collections.Generic.List ` 1 [[Microsoft.Azure.Commands.PolicyInsights.Models.PolicyEvent ]]]$policyEvents , [int ]$count )
148
+
149
+ Assert-True { $count -ge $policyEvents.Count }
150
+ Assert-True { $policyEvents.Count -gt 0 }
151
+ Foreach ($policyEvent in $policyEvents )
152
+ {
153
+ Validate- PolicyEvent $policyEvent
154
+ }
137
155
}
138
156
139
157
<#
@@ -142,19 +160,19 @@ Validates a policy event
142
160
#>
143
161
function Validate-PolicyEvent
144
162
{
145
- param ([Microsoft.Azure.Commands.PolicyInsights.Models.PolicyEvent ]$policyEvent )
146
-
147
- Assert-NotNull $policyEvent
148
-
149
- Assert-NotNull $policyEvent.Timestamp
150
- Assert-NotNullOrEmpty $policyEvent.ResourceId
151
- Assert-NotNullOrEmpty $policyEvent.PolicyAssignmentId
152
- Assert-NotNullOrEmpty $policyEvent.PolicyDefinitionId
153
- Assert-NotNull $policyEvent.IsCompliant
154
- Assert-NotNullOrEmpty $policyEvent.SubscriptionId
155
- Assert-NotNullOrEmpty $policyEvent.PolicyDefinitionAction
156
- Assert-NotNullOrEmpty $policyEvent.TenantId
157
- Assert-NotNullOrEmpty $policyEvent.PrincipalOid
163
+ param ([Microsoft.Azure.Commands.PolicyInsights.Models.PolicyEvent ]$policyEvent )
164
+
165
+ Assert-NotNull $policyEvent
166
+
167
+ Assert-NotNull $policyEvent.Timestamp
168
+ Assert-NotNullOrEmpty $policyEvent.ResourceId
169
+ Assert-NotNullOrEmpty $policyEvent.PolicyAssignmentId
170
+ Assert-NotNullOrEmpty $policyEvent.PolicyDefinitionId
171
+ Assert-NotNull $policyEvent.IsCompliant
172
+ Assert-NotNullOrEmpty $policyEvent.SubscriptionId
173
+ Assert-NotNullOrEmpty $policyEvent.PolicyDefinitionAction
174
+ Assert-NotNullOrEmpty $policyEvent.TenantId
175
+ Assert-NotNullOrEmpty $policyEvent.PrincipalOid
158
176
}
159
177
160
178
<#
@@ -163,14 +181,14 @@ Validates a list of policy states
163
181
#>
164
182
function Validate-PolicyStates
165
183
{
166
- param ([System.Collections.Generic.List ` 1 [[Microsoft.Azure.Commands.PolicyInsights.Models.PolicyState ]]]$policyStates , [int ]$count )
167
-
168
- Assert-True { $count -ge $policyStates.Count }
169
- Assert-True { $policyStates.Count -gt 0 }
170
- Foreach ($policyState in $policyStates )
171
- {
172
- Validate- PolicyState $policyState
173
- }
184
+ param ([System.Collections.Generic.List ` 1 [[Microsoft.Azure.Commands.PolicyInsights.Models.PolicyState ]]]$policyStates , [int ]$count )
185
+
186
+ Assert-True { $count -ge $policyStates.Count }
187
+ Assert-True { $policyStates.Count -gt 0 }
188
+ Foreach ($policyState in $policyStates )
189
+ {
190
+ Validate- PolicyState $policyState
191
+ }
174
192
}
175
193
176
194
<#
@@ -179,17 +197,17 @@ Validates a policy state
179
197
#>
180
198
function Validate-PolicyState
181
199
{
182
- param ([Microsoft.Azure.Commands.PolicyInsights.Models.PolicyState ]$policyState )
200
+ param ([Microsoft.Azure.Commands.PolicyInsights.Models.PolicyState ]$policyState )
183
201
184
- Assert-NotNull $policyState
202
+ Assert-NotNull $policyState
185
203
186
- Assert-NotNull $policyState.Timestamp
187
- Assert-NotNullOrEmpty $policyState.ResourceId
188
- Assert-NotNullOrEmpty $policyState.PolicyAssignmentId
189
- Assert-NotNullOrEmpty $policyState.PolicyDefinitionId
190
- Assert-NotNull $policyState.IsCompliant
191
- Assert-NotNullOrEmpty $policyState.SubscriptionId
192
- Assert-NotNullOrEmpty $policyState.PolicyDefinitionAction
204
+ Assert-NotNull $policyState.Timestamp
205
+ Assert-NotNullOrEmpty $policyState.ResourceId
206
+ Assert-NotNullOrEmpty $policyState.PolicyAssignmentId
207
+ Assert-NotNullOrEmpty $policyState.PolicyDefinitionId
208
+ Assert-NotNull $policyState.IsCompliant
209
+ Assert-NotNullOrEmpty $policyState.SubscriptionId
210
+ Assert-NotNullOrEmpty $policyState.PolicyDefinitionAction
193
211
}
194
212
195
213
<#
@@ -198,49 +216,86 @@ Validates a policy state summary
198
216
#>
199
217
function Validate-PolicyStateSummary
200
218
{
201
- param ([Microsoft.Azure.Commands.PolicyInsights.Models.PolicyStateSummary ]$policyStateSummary )
219
+ param ([Microsoft.Azure.Commands.PolicyInsights.Models.PolicyStateSummary ]$policyStateSummary )
220
+
221
+ Assert-NotNull $policyStateSummary
222
+
223
+ Assert-NotNull $policyStateSummary.Results
224
+ Assert-NotNull $policyStateSummary.Results.NonCompliantResources
225
+ Assert-NotNull $policyStateSummary.Results.NonCompliantPolicies
226
+
227
+ Assert-NotNull $policyStateSummary.PolicyAssignments
228
+ Assert-True { $policyStateSummary.PolicyAssignments.Count -le $policyStateSummary.Results.NonCompliantPolicies }
229
+ Assert-True { $policyStateSummary.PolicyAssignments.Count -gt 0 }
202
230
203
- Assert-NotNull $policyStateSummary
231
+ Foreach ($policyAssignmentSummary in $policyStateSummary.PolicyAssignments )
232
+ {
233
+ Assert-NotNull $policyAssignmentSummary
204
234
205
- Assert-NotNull $policyStateSummary.Results
206
- Assert-NotNull $policyStateSummary.Results.NonCompliantResources
207
- Assert-NotNull $policyStateSummary.Results.NonCompliantPolicies
235
+ Assert-NotNullOrEmpty $policyAssignmentSummary.PolicyAssignmentId
208
236
209
- Assert-NotNull $policyStateSummary .PolicyAssignments
210
- Assert-True { $policyStateSummary .PolicyAssignments.Count -le $policyStateSummary .Results.NonCompliantPolicies }
211
- Assert-True { $policyStateSummary .PolicyAssignments.Count -gt 0 }
237
+ Assert-NotNull $policyAssignmentSummary .Results
238
+ Assert-NotNull $policyAssignmentSummary .Results.NonCompliantResources
239
+ Assert-NotNull $policyAssignmentSummary .Results.NonCompliantPolicies
212
240
213
- Foreach ( $policyAssignmentSummary in $policyStateSummary .PolicyAssignments )
214
- {
215
- Assert-NotNull $policyAssignmentSummary
241
+ Assert-NotNull $policyAssignmentSummary .PolicyDefinitions
242
+ Assert-True { $policyAssignmentSummary .PolicyDefinitions.Count -eq $policyAssignmentSummary .Results.NonCompliantPolicies }
243
+ Assert-True { $policyAssignmentSummary.PolicyDefinitions.Count -gt 0 }
216
244
217
- Assert-NotNullOrEmpty $policyAssignmentSummary.PolicyAssignmentId
245
+ if ($policyAssignmentSummary.Results.NonCompliantPolicies -gt 1 )
246
+ {
247
+ Assert-NotNullOrEmpty $policyAssignmentSummary.PolicySetDefinitionId
248
+ }
218
249
219
- Assert-NotNull $policyAssignmentSummary.Results
220
- Assert-NotNull $policyAssignmentSummary .Results.NonCompliantResources
221
- Assert-NotNull $policyAssignmentSummary .Results.NonCompliantPolicies
250
+ Foreach ( $policyDefinitionSummary in $policyAssignmentSummary.PolicyDefinitions )
251
+ {
252
+ Assert-NotNull $policyDefinitionSummary
222
253
223
- Assert-NotNull $policyAssignmentSummary.PolicyDefinitions
224
- Assert-True { $policyAssignmentSummary.PolicyDefinitions.Count -eq $policyAssignmentSummary.Results.NonCompliantPolicies }
225
- Assert-True { $policyAssignmentSummary.PolicyDefinitions.Count -gt 0 }
254
+ Assert-NotNullOrEmpty $policyDefinitionSummary.PolicyDefinitionId
255
+ Assert-NotNullOrEmpty $policyDefinitionSummary.Effect
226
256
227
- if ($policyAssignmentSummary.Results.NonCompliantPolicies -gt 1 )
228
- {
229
- Assert-NotNullOrEmpty $policyAssignmentSummary.PolicySetDefinitionId
230
- }
257
+ Assert-NotNull $policyDefinitionSummary.Results
258
+ Assert-NotNull $policyDefinitionSummary.Results.NonCompliantResources
259
+ Assert-Null $policyDefinitionSummary.Results.NonCompliantPolicies
260
+ }
261
+ }
262
+ }
231
263
232
- Foreach ($policyDefinitionSummary in $policyAssignmentSummary.PolicyDefinitions )
233
- {
234
- Assert-NotNull $policyDefinitionSummary
264
+ <#
265
+ . SYNOPSIS
266
+ Validates a remediation
267
+ #>
268
+ function Validate-Remediation
269
+ {
270
+ param ([Microsoft.Azure.Commands.PolicyInsights.Models.Remediation.PSRemediation ]$remediation )
271
+
272
+ Assert-NotNull $remediation
273
+
274
+ Assert-NotNull $remediation.CreatedOn
275
+ Assert-NotNull $remediation.LastUpdatedOn
276
+ Assert-True { $remediation.Id -like " */providers/microsoft.policyinsights/remediations/*" }
277
+ Assert-AreEqual " Microsoft.PolicyInsights/remediations" $remediation.Type
278
+ Assert-NotNullOrEmpty $remediation.Name
279
+ Assert-NotNullOrEmpty $remediation.PolicyAssignmentId
280
+ Assert-NotNullOrEmpty $remediation.ProvisioningState
281
+ Assert-NotNull $remediation.DeploymentSummary
282
+ }
283
+
284
+ <#
285
+ . SYNOPSIS
286
+ Validates a remediation deployment
287
+ #>
288
+ function Validate-RemediationDeployment
289
+ {
290
+ param ([Microsoft.Azure.Commands.PolicyInsights.Models.Remediation.PSRemediationDeployment ]$deployment )
235
291
236
- Assert-NotNullOrEmpty $policyDefinitionSummary.PolicyDefinitionId
237
- Assert-NotNullOrEmpty $policyDefinitionSummary.Effect
292
+ Assert-NotNull $deployment
238
293
239
- Assert-NotNull $policyDefinitionSummary .Results
240
- Assert-NotNull $policyDefinitionSummary .Results.NonCompliantResources
241
- Assert-Null $policyDefinitionSummary .Results.NonCompliantPolicies
242
- }
243
- }
294
+ Assert-NotNull $deployment .CreatedOn
295
+ Assert-NotNull $deployment .LastUpdatedOn
296
+ Assert-True { $deployment .RemediatedResourceId -like " /subscriptions/*/providers/* " }
297
+ Assert-NotNullOrEmpty $deployment .Status
298
+ Assert-NotNullOrEmpty $deployment .ResourceLocation
244
299
}
245
300
246
301
<#
@@ -249,7 +304,7 @@ Validates a string is not null or empty
249
304
#>
250
305
function Assert-NotNullOrEmpty
251
306
{
252
- param ([string ]$value )
307
+ param ([string ]$value )
253
308
254
- Assert-False { [string ]::IsNullOrEmpty($value ) }
309
+ Assert-False { [string ]::IsNullOrEmpty($value ) }
255
310
}
0 commit comments