@@ -292,6 +292,12 @@ resources:
292292 Tags = @(
293293 'PSDscResource_PSClassResource'
294294 )
295+ DscCapabilities = @(
296+ 'get'
297+ 'test'
298+ 'set'
299+ 'export'
300+ )
295301 }
296302 }
297303}
@@ -303,11 +309,24 @@ resources:
303309
304310
305311 $module = @'
312+ enum Ensure {
313+ Present
314+ Absent
315+ }
316+
306317[DSCResource()]
307318class PSClassResource {
308319 [DscProperty(Key)]
309320 [string] $Name
310321
322+ [string] $NonDscProperty
323+
324+ hidden
325+ [string] $HiddenNonDscProperty
326+
327+ [DscProperty()]
328+ [Ensure] $Ensure = [Ensure]::Present
329+
311330 PSClassResource() {
312331 }
313332
@@ -333,6 +352,7 @@ class PSClassResource {
333352 1..$resultCount | %{
334353 $obj = New-Object PSClassResource
335354 $obj.Name = "Object$_"
355+ $obj.Ensure = [Ensure]::Present
336356 $resultList.Add($obj)
337357 }
338358
@@ -358,6 +378,8 @@ class PSClassResource {
358378 $out = dsc resource get - r PSClassResource/ PSClassResource -- input (@ {Name = ' TestName' } | ConvertTo-Json ) | ConvertFrom-Json
359379 $LASTEXITCODE | Should - Be 0
360380 $out.actualState.Name | Should - Be ' TestName'
381+ $propCount = $out.actualState | Get-Member - MemberType NoteProperty
382+ $propCount.Count | Should - Be 1 # Only the DscProperty should be returned
361383 }
362384
363385 It ' Set works with class-based PS DSC resources' - Skip:(! $IsWindows ) {
@@ -373,5 +395,7 @@ class PSClassResource {
373395 $LASTEXITCODE | Should - Be 0
374396 $out | Should -Not - BeNullOrEmpty
375397 $out.resources.count | Should - Be 5
398+ $out.resources [0 ].properties.Ensure | Should - Be ' Present' # Check for enum property
376399 }
377- }
400+ }
401+
0 commit comments