Skip to content

Commit

Permalink
Fix array vs hashtable Count and OffsetUri in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
FabienTschanz committed Oct 28, 2024
1 parent b1ad65e commit 960237e
Show file tree
Hide file tree
Showing 19 changed files with 238 additions and 716 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -888,11 +888,11 @@ function Test-TargetResource
{
$testResult = Compare-M365DSCComplexObject `
-Source ($source) `
-Target ($target) -Verbose
-Target ($target)

if (-not $testResult)
{
Write-Verbose "$key is different" -Verbose
Write-Verbose "$key is different"
break
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ function Get-TargetResource
try
{
Write-Verbose -Message "Checking for the Intune Endpoint Protection Attack Surface Protection rules Policy {$DisplayName}"

$ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' `
-InboundParameters $PSBoundParameters `
-ErrorAction Stop
Expand Down Expand Up @@ -1084,7 +1084,7 @@ function Export-TargetResource
$Results.Remove('Assignments') | Out-Null
}
}

$currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName `
-ConnectionMode $ConnectionMode `
-ModulePath $PSScriptRoot `
Expand Down Expand Up @@ -1126,4 +1126,4 @@ function Export-TargetResource
}
}

Export-ModuleMember -Function *-TargetResource
Export-ModuleMember -Function *-TargetResource
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
}
}

if ($settingsWithSameName.Count -gt 1)
if ($settingsWithSameName -is [array] -and $settingsWithSameName.Count -gt 1)
{
# Get the parent setting of the current setting
$parentSetting = Get-ParentSettingDefinition -SettingDefinition $SettingDefinition -AllSettingDefinitions $AllSettingDefinitions
Expand Down Expand Up @@ -201,4 +201,4 @@ function Get-SettingDefinitionNameWithParentFromOffsetUri {
{
$SettingName
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,14 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
}

Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith {
return @{
Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870'
Description = 'My Test Description'
Name = 'My Test'
TemplateReference = @{
TemplateId = 'adc46e5a-f4aa-4ff6-aeff-4f27bc525796_1'
}
}
}

Mock -CommandName Update-IntuneDeviceConfigurationPolicy -MockWith {
Expand All @@ -54,7 +62,33 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
}

Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith {
return ,@()
return @{
Id = 0
SettingDefinitions = @(
@{
Id = 'device_vendor_msft_laps_policies_backupdirectory'
Name = 'BackupDirectory'
OffsetUri = '/Policies/BackupDirectory'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition'
}
}
)
SettingInstance = @{
SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory'
SettingInstanceTemplateReference = @{
SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a'
}
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'
choiceSettingValue = @{
children = @()
value = "device_vendor_msft_laps_policies_backupdirectory_1"
}
}
}
AdditionalProperties = $null
}
}

Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith {
Expand Down Expand Up @@ -135,43 +169,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
DisplayName = 'My Test'
Ensure = 'Present'
Identity = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870'
BackupDirectory = '0'
}

Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith {
return @{
Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870'
Description = 'My Test Description'
Name = 'My Test'
}
}
Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith {
return @{
Id = 0
SettingDefinitions = @(
@{
Id = 'device_vendor_msft_laps_policies_backupdirectory'
Name = 'BackupDirectory'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition'
}
}
)
SettingInstance = @{
SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory'
SettingInstanceTemplateReference = @{
SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a'
}
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'
choiceSettingValue = @{
children = @()
value = "device_vendor_msft_laps_policies_backupdirectory_1"
}
}
}
AdditionalProperties = $null
}
BackupDirectory = '0' # Drift
}
}

Expand Down Expand Up @@ -206,42 +204,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
)
BackupDirectory = '1'
}

Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith {
return @{
Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870'
Description = 'My Test Description'
Name = 'My Test'
}
}
Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith {
return @{
Id = 0
SettingDefinitions = @(
@{
Id = 'device_vendor_msft_laps_policies_backupdirectory'
Name = 'BackupDirectory'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition'
}
}
)
SettingInstance = @{
SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory'
SettingInstanceTemplateReference = @{
SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a'
}
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'
choiceSettingValue = @{
children = @()
value = "device_vendor_msft_laps_policies_backupdirectory_1"
}
}
}
AdditionalProperties = $null
}
}
}

It 'Should return true from the Test method' {
Expand All @@ -264,42 +226,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
Ensure = 'Absent'
Identity = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870'
}

Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith {
return @{
Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870'
Description = 'My Test Description'
Name = 'My Test'
}
}
Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith {
return @{
Id = 0
SettingDefinitions = @(
@{
Id = 'device_vendor_msft_laps_policies_backupdirectory'
Name = 'BackupDirectory'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition'
}
}
)
SettingInstance = @{
SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory'
SettingInstanceTemplateReference = @{
SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a'
}
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'
choiceSettingValue = @{
children = @()
value = "device_vendor_msft_laps_policies_backupdirectory_1"
}
}
}
AdditionalProperties = $null
}
}
}

It 'Should return Present from the Get method' {
Expand All @@ -323,45 +249,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
$testParams = @{
Credential = $Credential
}

Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith {
return @{
Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870'
Description = 'My Test Description'
Name = 'My Test'
TemplateReference = @{
TemplateId = 'adc46e5a-f4aa-4ff6-aeff-4f27bc525796_1'
}
}
}
Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith {
return @{
Id = 0
SettingDefinitions = @(
@{
Id = 'device_vendor_msft_laps_policies_backupdirectory'
Name = 'BackupDirectory'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition'
}
}
)
SettingInstance = @{
SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory'
SettingInstanceTemplateReference = @{
SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a'
}
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'
choiceSettingValue = @{
children = @()
value = "device_vendor_msft_laps_policies_backupdirectory_1"
}
}
}
AdditionalProperties = $null
}
}
}

It 'Should Reverse Engineer resource from the Export method' {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
@{
Id = 'device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_history'
Name = 'History'
OffsetUri = '/{0}/Policies/PINComplexity/History'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition'
dependentOn = @(
Expand All @@ -84,6 +85,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
@{
Id = 'device_vendor_msft_passportforwork_{tenantid}'
Name = '{TenantId}'
OffsetUri = '/{0}'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingGroupCollectionDefinition'
childIds = @(
Expand Down Expand Up @@ -124,6 +126,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
@{
Id = 'user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_history'
Name = 'History'
OffsetUri = '/{0}/Policies/PINComplexity/History'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition'
dependentOn = @(
Expand All @@ -137,6 +140,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
@{
Id = 'user_vendor_msft_passportforwork_{tenantid}'
Name = '{TenantId}'
OffsetUri = '/{0}'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingGroupCollectionDefinition'
childIds = @(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
@{
Id = 'device_vendor_msft_policy_config_defender_allowarchivescanning'
Name = 'AllowArchiveScanning'
OffsetUri = '/Config/Defender/AllowArchiveScanning'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition'
}
Expand Down Expand Up @@ -162,7 +163,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
Context -Name 'When the instance already exists and is NOT in the Desired State' -Fixture {
BeforeAll {
$testParams = @{
allowarchivescanning = '1'
allowarchivescanning = '0' # Drift
Assignments = [CimInstance[]]@(
(New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{
DataType = '#microsoft.graph.exclusionGroupAssignmentTarget'
Expand All @@ -177,39 +178,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture {
templateId = 'd948ff9b-99cb-4ee0-8012-1fbc09685377_1'
Identity = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870'
}

Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith {
return @{
Id = 0
SettingDefinitions = @(
@{
Id = 'device_vendor_msft_policy_config_defender_allowarchivescanning'
Name = 'AllowArchiveScanning'
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition'
}
}
)
SettingInstance = @{
SettingDefinitionId = 'device_vendor_msft_policy_config_defender_allowarchivescanning'
SettingInstanceTemplateReference = @{
SettingInstanceTemplateId = '7c5c9cde-f74d-4d11-904f-de4c27f72d89'
AdditionalProperties = $null
}
AdditionalProperties = @{
'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'
choiceSettingValue = @{
value = 'device_vendor_msft_policy_config_defender_allowarchivescanning_0' #drift
settingValueTemplateReference = @{
settingValueTemplateId = '9ead75d4-6f30-4bc5-8cc5-ab0f999d79f0'
useTemplateDefault = $false
}
children = $null
}
}
}
}
}
}

It 'Should return Present from the Get method' {
Expand Down
Loading

0 comments on commit 960237e

Please sign in to comment.