зеркало из https://github.com/microsoft/MIMDSC.git
flatten the module, decided to have one module for Sync and Service
This commit is contained in:
Родитель
02e34a5bf4
Коммит
e333f42742
|
@ -13,8 +13,8 @@ function Convert-MimSyncConfigToDsc {
|
||||||
[CmdletBinding()]
|
[CmdletBinding()]
|
||||||
Param
|
Param
|
||||||
(
|
(
|
||||||
# Folder with the Sync Service configuration XML files (defaults to $env:ProgramData\MimSyncDsc\Svrexport)
|
# Folder with the Sync Service configuration XML files (defaults to $env:ProgramData\MimDsc\Svrexport)
|
||||||
$Path = "$env:ProgramData\MimSyncDsc\Svrexport"
|
$Path = "$env:ProgramData\MimDsc\Svrexport"
|
||||||
)
|
)
|
||||||
Write-Verbose "Using Path: $Path"
|
Write-Verbose "Using Path: $Path"
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ function Convert-MimSyncConfigToDsc {
|
||||||
#endregion IAF rules
|
#endregion IAF rules
|
||||||
|
|
||||||
#region Join rules
|
#region Join rules
|
||||||
$joinRules = Get-MimSyncJoinRule -ServerConfigurationFolder "$env:ProgramData\MimSyncDsc\Svrexport\"
|
$joinRules = Get-MimSyncJoinRule -ServerConfigurationFolder "$env:ProgramData\MimDsc\Svrexport\"
|
||||||
|
|
||||||
foreach ($joinRule in $joinRules) {
|
foreach ($joinRule in $joinRules) {
|
||||||
$joinCriteriaStrings = @()
|
$joinCriteriaStrings = @()
|
||||||
|
@ -285,7 +285,7 @@ function Convert-MimSyncConfigToDsc {
|
||||||
#endregion Join rules
|
#endregion Join rules
|
||||||
|
|
||||||
#region Projection rules
|
#region Projection rules
|
||||||
$projectionRules = Get-MimSyncProjectionRule -ServerConfigurationFolder "$env:ProgramData\MimSyncDsc\Svrexport\"
|
$projectionRules = Get-MimSyncProjectionRule -ServerConfigurationFolder "$env:ProgramData\MimDsc\Svrexport\"
|
||||||
foreach ($projectionRule in $projectionRules) {
|
foreach ($projectionRule in $projectionRules) {
|
||||||
$dscConfigScriptItems += @'
|
$dscConfigScriptItems += @'
|
||||||
ProjectionRule {1}
|
ProjectionRule {1}
|
|
@ -7,8 +7,8 @@ function Get-MimSyncConfigCache
|
||||||
Get-FimSyncConfigCache
|
Get-FimSyncConfigCache
|
||||||
#>
|
#>
|
||||||
|
|
||||||
# Cache Folder (defaults to $env:ProgramData\MimSyncDsc\BoundAttributesCache)
|
# Cache Folder (defaults to $env:ProgramData\MimDsc\BoundAttributesCache)
|
||||||
$CacheLocation = "$env:ProgramData\MimSyncDsc\Svrexport"
|
$CacheLocation = "$env:ProgramData\MimDsc\Svrexport"
|
||||||
|
|
||||||
Write-Verbose "Using CacheLocation: $CacheLocation"
|
Write-Verbose "Using CacheLocation: $CacheLocation"
|
||||||
|
|
|
@ -16,8 +16,8 @@ function Write-MimSyncConfigCache
|
||||||
[CmdletBinding()]
|
[CmdletBinding()]
|
||||||
Param
|
Param
|
||||||
(
|
(
|
||||||
# Cache Folder (defaults to $env:ProgramData\MimSyncDsc\Svrexport)
|
# Cache Folder (defaults to $env:ProgramData\MimDsc\Svrexport)
|
||||||
$CacheLocation = "$env:ProgramData\MimSyncDsc\Svrexport",
|
$CacheLocation = "$env:ProgramData\MimDsc\Svrexport",
|
||||||
|
|
||||||
# Cache Age (defaults to one day)
|
# Cache Age (defaults to one day)
|
||||||
[TimeSpan]
|
[TimeSpan]
|
|
@ -2,7 +2,7 @@
|
||||||
@{
|
@{
|
||||||
|
|
||||||
# Script module or binary module file associated with this manifest.
|
# Script module or binary module file associated with this manifest.
|
||||||
RootModule = 'MimSyncDsc.psm1'
|
RootModule = 'MimDsc.psm1'
|
||||||
|
|
||||||
# Version number of this module.
|
# Version number of this module.
|
||||||
ModuleVersion = '0.0.1'
|
ModuleVersion = '0.0.1'
|
||||||
|
@ -23,7 +23,7 @@ CompanyName = 'Microsoft Corporation'
|
||||||
Copyright = '(c) Microsoft Corporation. All rights reserved.'
|
Copyright = '(c) Microsoft Corporation. All rights reserved.'
|
||||||
|
|
||||||
# Description of the functionality provided by this module
|
# Description of the functionality provided by this module
|
||||||
Description = 'Desired State Configuration resources for Microsoft Identity Manager Synchronization Service'
|
Description = 'Desired State Configuration resources for Microsoft Identity Manager'
|
||||||
|
|
||||||
# Minimum version of the Windows PowerShell engine required by this module
|
# Minimum version of the Windows PowerShell engine required by this module
|
||||||
PowerShellVersion = '5.0'
|
PowerShellVersion = '5.0'
|
|
@ -1,27 +0,0 @@
|
||||||
### Build script called by Azure Pipelines
|
|
||||||
Write-Host "I'm the build script"
|
|
||||||
|
|
||||||
# Install Pester module if it is not already installed
|
|
||||||
if (-not (Get-Module -Name Pester -ListAvailable))
|
|
||||||
{
|
|
||||||
Write-Host "Installing Pester"
|
|
||||||
Install-Module -Name Pester -Scope CurrentUser -Force -Confirm:$false
|
|
||||||
}
|
|
||||||
|
|
||||||
### Find out what version of Pester we have
|
|
||||||
Get-Module Pester -ListAvailable
|
|
||||||
|
|
||||||
Write-Host 'Copy MimSyncDsc module files to Program Files'
|
|
||||||
Copy-Item .\MimSyncDsc "$env:ProgramFiles\WindowsPowerShell\Modules" -Container -Recurse -Verbose -Force
|
|
||||||
|
|
||||||
Write-Host 'Copy Sync Configuration Files'
|
|
||||||
New-Item -ItemType Directory -Path "$env:ProgramData\MimSyncDsc\Svrexport" -Verbose -Force | Out-Null
|
|
||||||
Copy-Item -Path .\MimSyncDsc\Tests\MimSyncServerConfiguration\* "$env:ProgramData\MimSyncDsc\Svrexport\" -Force -Verbose
|
|
||||||
|
|
||||||
### Run Tests
|
|
||||||
$TestResults = Invoke-Pester -Script .\MimSyncDsc\Tests\*.tests.ps1 -Tag Build -ExcludeTag RunsInLocalConfigurationManager -OutputFile MimSyncDsc.testresults.xml -OutputFormat NUnitXML
|
|
||||||
|
|
||||||
if($TestResults.FailedCount -gt 0)
|
|
||||||
{
|
|
||||||
Write-Error -Message "Test pass failed: `n`t$($TestResults.PassedCount) passed`n`t$($TestResults.FailedCount) failed "
|
|
||||||
}
|
|
|
@ -3,7 +3,7 @@ if (-not (Get-Module xDSCResourceDesigner -ListAvailable))
|
||||||
Install-Module xDSCResourceDesigner -Scope CurrentUser -Force -Confirm:$false
|
Install-Module xDSCResourceDesigner -Scope CurrentUser -Force -Confirm:$false
|
||||||
}
|
}
|
||||||
|
|
||||||
Get-DscResource -Module MimSyncDsc | ForEach-Object {
|
Get-DscResource -Module MimDsc | ForEach-Object {
|
||||||
$dscResource = $PSItem
|
$dscResource = $PSItem
|
||||||
Describe -Tag 'Build' "DscResource Designer Validation for $($dscResource.ResourceType)"{
|
Describe -Tag 'Build' "DscResource Designer Validation for $($dscResource.ResourceType)"{
|
||||||
It 'Test-xDscResource Should Pass'{
|
It 'Test-xDscResource Should Pass'{
|
|
@ -1,4 +1,4 @@
|
||||||
Import-Module -Name MimSyncDsc
|
Import-Module -Name MimDsc
|
||||||
|
|
||||||
Describe Get-MimRegistryKey{
|
Describe Get-MimRegistryKey{
|
||||||
It 'Does Not Throw' {
|
It 'Does Not Throw' {
|
|
@ -1,10 +1,10 @@
|
||||||
Import-Module -Name MimSyncDsc
|
Import-Module -Name MimDsc
|
||||||
|
|
||||||
Describe Get-MimSyncConfigCache{
|
Describe Get-MimSyncConfigCache{
|
||||||
<#
|
<#
|
||||||
It 'Does Throw When Cache is Missing' {
|
It 'Does Throw When Cache is Missing' {
|
||||||
#Arrange
|
#Arrange
|
||||||
Remove-Item -Path "$env:ProgramData\MimSyncDsc\Svrexport" -ErrorAction SilentlyContinue
|
Remove-Item -Path "$env:ProgramData\MimDsc\Svrexport" -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
(Get-MimSyncConfigCache -eq $null) | Should Be True
|
(Get-MimSyncConfigCache -eq $null) | Should Be True
|
||||||
}
|
}
|
||||||
|
@ -12,10 +12,10 @@ Describe Get-MimSyncConfigCache{
|
||||||
|
|
||||||
It 'Does Not Throw When Cache folder is present' {
|
It 'Does Not Throw When Cache folder is present' {
|
||||||
# Arrange
|
# Arrange
|
||||||
mkdir "$env:ProgramData\MimSyncDsc\Svrexport"
|
mkdir "$env:ProgramData\MimDsc\Svrexport"
|
||||||
|
|
||||||
# Act
|
# Act
|
||||||
$actualValue = Get-ChildItem "$env:ProgramData\MimSyncDsc\Svrexport"
|
$actualValue = Get-ChildItem "$env:ProgramData\MimDsc\Svrexport"
|
||||||
|
|
||||||
# Assert
|
# Assert
|
||||||
{Get-MimSyncConfigCache } | Should Not Throw
|
{Get-MimSyncConfigCache } | Should Not Throw
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
#Get-MimSyncServerXml -Path (Get-MimSyncConfigCache) -Force
|
#Get-MimSyncServerXml -Path (Get-MimSyncConfigCache) -Force
|
||||||
|
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncExportAttributeFlowRule
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncExportAttributeFlowRule
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncExportAttributeFlowRule
|
||||||
It 'Direct EAF Rule - desired state' {
|
It 'Direct EAF Rule - desired state' {
|
||||||
Configuration TestMimSyncExportAttributeFlowRule
|
Configuration TestMimSyncExportAttributeFlowRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -118,7 +118,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncExportAttributeFlowRule
|
||||||
It 'Scripted EAF Rule - desired state' {
|
It 'Scripted EAF Rule - desired state' {
|
||||||
Configuration TestMimSyncExportAttributeFlowRule
|
Configuration TestMimSyncExportAttributeFlowRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -148,7 +148,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncExportAttributeFlowRule
|
||||||
It 'Scripted EAF Rule - multiple source attributes - desired state' {
|
It 'Scripted EAF Rule - multiple source attributes - desired state' {
|
||||||
Configuration TestMimSyncExportAttributeFlowRule
|
Configuration TestMimSyncExportAttributeFlowRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -178,7 +178,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncExportAttributeFlowRule
|
||||||
It 'Constant EAF Rule - desired state' {
|
It 'Constant EAF Rule - desired state' {
|
||||||
Configuration TestMimSyncExportAttributeFlowRule
|
Configuration TestMimSyncExportAttributeFlowRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncFilterRule
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncFilterRule
|
||||||
|
|
||||||
ipmo $dscResource.Path -Force
|
ipmo $dscResource.Path -Force
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncFilterRule - using the L
|
||||||
It 'Scripted Filter Rule - desired state' {
|
It 'Scripted Filter Rule - desired state' {
|
||||||
Configuration TestMimSyncFilterRule
|
Configuration TestMimSyncFilterRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -133,7 +133,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncFilterRule - using the L
|
||||||
It 'Scripted Filter Rule - desired state' {
|
It 'Scripted Filter Rule - desired state' {
|
||||||
Configuration TestMimSyncFilterRule
|
Configuration TestMimSyncFilterRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -159,7 +159,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncFilterRule - using the L
|
||||||
It 'Declared Filter Rule - desired state' {
|
It 'Declared Filter Rule - desired state' {
|
||||||
Configuration TestMimSyncFilterRule
|
Configuration TestMimSyncFilterRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncImportAttributeFlowRule
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncImportAttributeFlowRule
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncImportAttributeFlowRule
|
||||||
It 'Direct IAF Rule - desired state' {
|
It 'Direct IAF Rule - desired state' {
|
||||||
Configuration TestMimSyncImportAttributeFlowRule
|
Configuration TestMimSyncImportAttributeFlowRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -143,7 +143,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncImportAttributeFlowRule
|
||||||
It 'Direct IAF Rule - dn-mapping - desired state' {
|
It 'Direct IAF Rule - dn-mapping - desired state' {
|
||||||
Configuration TestMimSyncImportAttributeFlowRule
|
Configuration TestMimSyncImportAttributeFlowRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -172,7 +172,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncImportAttributeFlowRule
|
||||||
It 'DN-Part-Mapping IAF Rule - desired state' {
|
It 'DN-Part-Mapping IAF Rule - desired state' {
|
||||||
Configuration TestMimSyncImportAttributeFlowRule
|
Configuration TestMimSyncImportAttributeFlowRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -201,7 +201,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncImportAttributeFlowRule
|
||||||
It 'Scripted IAF Rule - multiple source attributes - desired state' {
|
It 'Scripted IAF Rule - multiple source attributes - desired state' {
|
||||||
Configuration TestMimSyncImportAttributeFlowRule
|
Configuration TestMimSyncImportAttributeFlowRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -231,7 +231,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncImportAttributeFlowRule
|
||||||
It 'Constant IAF Rule - desired state' {
|
It 'Constant IAF Rule - desired state' {
|
||||||
Configuration TestMimSyncImportAttributeFlowRule
|
Configuration TestMimSyncImportAttributeFlowRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -258,37 +258,37 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncImportAttributeFlowRule
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'Issue: IAF Rules with identical key properties' {
|
It 'Issue: IAF Rules with identical key properties' {
|
||||||
Configuration TestMimSyncConfig
|
Configuration TestMimSyncConfig
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
ImportAttributeFlowRule af5ca310-1d8c-4669-95c2-1f7d0482cb8f
|
ImportAttributeFlowRule af5ca310-1d8c-4669-95c2-1f7d0482cb8f
|
||||||
{
|
{
|
||||||
FakeIdentifier = 'foo'
|
FakeIdentifier = 'foo'
|
||||||
ManagementAgentName = 'TinyHR'
|
ManagementAgentName = 'TinyHR'
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
MVAttribute = 'DisplayName'
|
MVAttribute = 'DisplayName'
|
||||||
CDObjectType = 'person'
|
CDObjectType = 'person'
|
||||||
Type = 'direct-mapping'
|
Type = 'direct-mapping'
|
||||||
SrcAttribute = 'LastName'
|
SrcAttribute = 'LastName'
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
}
|
}
|
||||||
|
|
||||||
ImportAttributeFlowRule e1261aaa-de1a-4af0-8373-2c6c6fb76713
|
ImportAttributeFlowRule e1261aaa-de1a-4af0-8373-2c6c6fb76713
|
||||||
{
|
{
|
||||||
FakeIdentifier = 'bar'
|
FakeIdentifier = 'bar'
|
||||||
ManagementAgentName = 'TinyHR'
|
ManagementAgentName = 'TinyHR'
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
MVAttribute = 'DisplayName'
|
MVAttribute = 'DisplayName'
|
||||||
CDObjectType = 'person'
|
CDObjectType = 'person'
|
||||||
Type = 'direct-mapping'
|
Type = 'direct-mapping'
|
||||||
SrcAttribute = 'FirstName'
|
SrcAttribute = 'FirstName'
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{TestMimSyncConfig -OutputPath "$env:TEMP\TestMimSyncConfig" } | Should Not Throw
|
{TestMimSyncConfig -OutputPath "$env:TEMP\TestMimSyncConfig" } | Should Not Throw
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,16 +1,16 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncImportAttributePrecedence
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncImportAttributePrecedence
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
Describe -Tag 'Build' 'MimSyncImportAttributePrecedence - calling Test-TargetResource Directly'{
|
Describe -Tag 'Build' 'MimSyncImportAttributePrecedence - calling Test-TargetResource Directly'{
|
||||||
|
|
||||||
It 'MimSyncImportAttributePrecedence - desired state' {
|
It 'MimSyncImportAttributePrecedence - desired state' {
|
||||||
$RankedPrecedenceOrder = @(
|
$RankedPrecedenceOrder = @(
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 0; ManagementAgentName='GrandHR'; CDObjectType='robot'; ID='{86E75ABE-B15D-4CFF-A785-BC968965A361}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 0; ManagementAgentName='GrandHR'; CDObjectType='robot'; ID='{86E75ABE-B15D-4CFF-A785-BC968965A361}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 1; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{385176D8-4EB8-4900-B627-DBAF137C8FF3}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 1; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{385176D8-4EB8-4900-B627-DBAF137C8FF3}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 2; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{AF5CA310-1D8C-4669-95C2-1F7D0482CB8F}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 2; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{AF5CA310-1D8C-4669-95C2-1F7D0482CB8F}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 3; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{E1261AAA-DE1A-4AF0-8373-2C6C6FB76713}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 3; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{E1261AAA-DE1A-4AF0-8373-2C6C6FB76713}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
|
|
||||||
) -as [CimInstance[]]
|
) -as [CimInstance[]]
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -MVObjectType Contact -MVAttribute DisplayName -Type ranked -RankedPrecedenceOrder $RankedPrecedenceOrder -Verbose
|
$dscResult = Test-TargetResource -MVObjectType Contact -MVAttribute DisplayName -Type ranked -RankedPrecedenceOrder $RankedPrecedenceOrder -Verbose
|
||||||
|
@ -19,12 +19,12 @@ Describe -Tag 'Build' 'MimSyncImportAttributePrecedence - calling Test-TargetRes
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'MimSyncImportAttributePrecedence - incorrect order' {
|
It 'MimSyncImportAttributePrecedence - incorrect order' {
|
||||||
$RankedPrecedenceOrder = @(
|
$RankedPrecedenceOrder = @(
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 0; ManagementAgentName='GrandHR'; CDObjectType='robot'; ID='{86E75ABE-B15D-4CFF-A785-BC968965A361}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 0; ManagementAgentName='GrandHR'; CDObjectType='robot'; ID='{86E75ABE-B15D-4CFF-A785-BC968965A361}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 3; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{385176D8-4EB8-4900-B627-DBAF137C8FF3}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 3; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{385176D8-4EB8-4900-B627-DBAF137C8FF3}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 2; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{AF5CA310-1D8C-4669-95C2-1F7D0482CB8F}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 2; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{AF5CA310-1D8C-4669-95C2-1F7D0482CB8F}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 1; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{E1261AAA-DE1A-4AF0-8373-2C6C6FB76713}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 1; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{E1261AAA-DE1A-4AF0-8373-2C6C6FB76713}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
|
|
||||||
) -as [CimInstance[]]
|
) -as [CimInstance[]]
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -MVObjectType Contact -MVAttribute DisplayName -Type ranked -RankedPrecedenceOrder $RankedPrecedenceOrder -Verbose
|
$dscResult = Test-TargetResource -MVObjectType Contact -MVAttribute DisplayName -Type ranked -RankedPrecedenceOrder $RankedPrecedenceOrder -Verbose
|
||||||
|
@ -33,12 +33,12 @@ Describe -Tag 'Build' 'MimSyncImportAttributePrecedence - calling Test-TargetRes
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'MimSyncImportAttributePrecedence - incorrect type' {
|
It 'MimSyncImportAttributePrecedence - incorrect type' {
|
||||||
$RankedPrecedenceOrder = @(
|
$RankedPrecedenceOrder = @(
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 0; ManagementAgentName='GrandHR'; CDObjectType='robot'; ID='{86E75ABE-B15D-4CFF-A785-BC968965A361}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 0; ManagementAgentName='GrandHR'; CDObjectType='robot'; ID='{86E75ABE-B15D-4CFF-A785-BC968965A361}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 3; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{385176D8-4EB8-4900-B627-DBAF137C8FF3}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 3; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{385176D8-4EB8-4900-B627-DBAF137C8FF3}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 2; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{AF5CA310-1D8C-4669-95C2-1F7D0482CB8F}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 2; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{AF5CA310-1D8C-4669-95C2-1F7D0482CB8F}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 1; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{E1261AAA-DE1A-4AF0-8373-2C6C6FB76713}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncRankedPrecedenceOrder -Property @{Order = 1; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{E1261AAA-DE1A-4AF0-8373-2C6C6FB76713}'} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
|
|
||||||
) -as [CimInstance[]]
|
) -as [CimInstance[]]
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -MVObjectType Contact -MVAttribute DisplayName -Type equal -RankedPrecedenceOrder $RankedPrecedenceOrder -Verbose
|
$dscResult = Test-TargetResource -MVObjectType Contact -MVAttribute DisplayName -Type equal -RankedPrecedenceOrder $RankedPrecedenceOrder -Verbose
|
||||||
|
@ -75,21 +75,21 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncRunProfile - using the L
|
||||||
It 'MimSyncRunProfile - desired state' {
|
It 'MimSyncRunProfile - desired state' {
|
||||||
Configuration TestMimSyncImportAttributePrecedenceConfig
|
Configuration TestMimSyncImportAttributePrecedenceConfig
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
ImportAttributePrecedence 'Contact-DisplayName'
|
ImportAttributePrecedence 'Contact-DisplayName'
|
||||||
{
|
{
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
MVAttribute = 'DisplayName'
|
MVAttribute = 'DisplayName'
|
||||||
Type = 'ranked'
|
Type = 'ranked'
|
||||||
RankedPrecedenceOrder = @(
|
RankedPrecedenceOrder = @(
|
||||||
RankedPrecedenceOrder{Order = 0; ManagementAgentName='GrandHR'; CDObjectType='robot'; ID='{86E75ABE-B15D-4CFF-A785-BC968965A361}'}
|
RankedPrecedenceOrder{Order = 0; ManagementAgentName='GrandHR'; CDObjectType='robot'; ID='{86E75ABE-B15D-4CFF-A785-BC968965A361}'}
|
||||||
RankedPrecedenceOrder{Order = 1; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{385176D8-4EB8-4900-B627-DBAF137C8FF3}'}
|
RankedPrecedenceOrder{Order = 1; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{385176D8-4EB8-4900-B627-DBAF137C8FF3}'}
|
||||||
RankedPrecedenceOrder{Order = 2; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{AF5CA310-1D8C-4669-95C2-1F7D0482CB8F}'}
|
RankedPrecedenceOrder{Order = 2; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{AF5CA310-1D8C-4669-95C2-1F7D0482CB8F}'}
|
||||||
RankedPrecedenceOrder{Order = 3; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{E1261AAA-DE1A-4AF0-8373-2C6C6FB76713}'}
|
RankedPrecedenceOrder{Order = 3; ManagementAgentName='TinyHR'; CDObjectType='person'; ID='{E1261AAA-DE1A-4AF0-8373-2C6C6FB76713}'}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,9 +1,9 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncJoinRule
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncJoinRule
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
Describe -Tag 'Build' 'MimSyncJoinRule - calling Test-TargetResource Directly'{
|
Describe -Tag 'Build' 'MimSyncJoinRule - calling Test-TargetResource Directly'{
|
||||||
It 'Mega Join Rule - desired state' {
|
It 'Mega Join Rule - desired state' {
|
||||||
$joinCriteria = @(
|
$joinCriteria = @(
|
||||||
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
|
@ -24,7 +24,7 @@ Describe -Tag 'Build' 'MimSyncJoinRule - calling Test-TargetResource Directly'{
|
||||||
ScriptContext = ''
|
ScriptContext = ''
|
||||||
}
|
}
|
||||||
) -as [CimInstance[]]
|
) -as [CimInstance[]]
|
||||||
}
|
}
|
||||||
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
ResolutionType = 'scripted'
|
ResolutionType = 'scripted'
|
||||||
|
@ -38,7 +38,7 @@ Describe -Tag 'Build' 'MimSyncJoinRule - calling Test-TargetResource Directly'{
|
||||||
ScriptContext = 'cd.contact#2:FirstName,LastName->Alias'
|
ScriptContext = 'cd.contact#2:FirstName,LastName->Alias'
|
||||||
}
|
}
|
||||||
) -as [CimInstance[]]
|
) -as [CimInstance[]]
|
||||||
}
|
}
|
||||||
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
MVObjectType = ''
|
MVObjectType = ''
|
||||||
ResolutionType = 'none'
|
ResolutionType = 'none'
|
||||||
|
@ -52,15 +52,15 @@ Describe -Tag 'Build' 'MimSyncJoinRule - calling Test-TargetResource Directly'{
|
||||||
ScriptContext = ''
|
ScriptContext = ''
|
||||||
}
|
}
|
||||||
) -as [CimInstance[]]
|
) -as [CimInstance[]]
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -ManagementAgentName TinyHR -CDObjectType contact -JoinCriterion $joinCriteria -Ensure Present -Verbose
|
$dscResult = Test-TargetResource -ManagementAgentName TinyHR -CDObjectType contact -JoinCriterion $joinCriteria -Ensure Present -Verbose
|
||||||
|
|
||||||
$dscResult | Should be True
|
$dscResult | Should be True
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'Mega Join Rule - incorrect join rule order' {
|
It 'Mega Join Rule - incorrect join rule order' {
|
||||||
$joinCriteria = @(
|
$joinCriteria = @(
|
||||||
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
|
@ -81,7 +81,7 @@ Describe -Tag 'Build' 'MimSyncJoinRule - calling Test-TargetResource Directly'{
|
||||||
ScriptContext = ''
|
ScriptContext = ''
|
||||||
}
|
}
|
||||||
) -as [CimInstance[]]
|
) -as [CimInstance[]]
|
||||||
}
|
}
|
||||||
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
ResolutionType = 'scripted'
|
ResolutionType = 'scripted'
|
||||||
|
@ -95,7 +95,7 @@ Describe -Tag 'Build' 'MimSyncJoinRule - calling Test-TargetResource Directly'{
|
||||||
ScriptContext = 'cd.contact#2:FirstName,LastName->Alias'
|
ScriptContext = 'cd.contact#2:FirstName,LastName->Alias'
|
||||||
}
|
}
|
||||||
) -as [CimInstance[]]
|
) -as [CimInstance[]]
|
||||||
}
|
}
|
||||||
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
New-CimInstance -ClassName MimSyncJoinCriterion -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
MVObjectType = ''
|
MVObjectType = ''
|
||||||
ResolutionType = 'none'
|
ResolutionType = 'none'
|
||||||
|
@ -109,45 +109,45 @@ Describe -Tag 'Build' 'MimSyncJoinRule - calling Test-TargetResource Directly'{
|
||||||
ScriptContext = ''
|
ScriptContext = ''
|
||||||
}
|
}
|
||||||
) -as [CimInstance[]]
|
) -as [CimInstance[]]
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -ManagementAgentName TinyHR -CDObjectType contact -JoinCriterion $joinCriteria -Ensure Present -Verbose
|
$dscResult = Test-TargetResource -ManagementAgentName TinyHR -CDObjectType contact -JoinCriterion $joinCriteria -Ensure Present -Verbose
|
||||||
|
|
||||||
$dscResult | Should be False
|
$dscResult | Should be False
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Describe -Tag 'Build' 'MimSyncJoinRule - calling Get-TargetResource Directly'{
|
Describe -Tag 'Build' 'MimSyncJoinRule - calling Get-TargetResource Directly'{
|
||||||
It 'Missing Join Rule' {
|
It 'Missing Join Rule' {
|
||||||
|
|
||||||
$dscResult = Get-TargetResource -ManagementAgentName TINYHR -CDObjectType faketype -Verbose
|
$dscResult = Get-TargetResource -ManagementAgentName TINYHR -CDObjectType faketype -Verbose
|
||||||
|
|
||||||
(-not $dscResult) | Should Be True
|
(-not $dscResult) | Should Be True
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'Expected Join Rule' {
|
It 'Expected Join Rule' {
|
||||||
|
|
||||||
$dscResult = Get-TargetResource -ManagementAgentName TinyHR -CDObjectType contact -Verbose
|
$dscResult = Get-TargetResource -ManagementAgentName TinyHR -CDObjectType contact -Verbose
|
||||||
|
|
||||||
$dscResult['JoinCriterion'].Count | Should be 3
|
$dscResult['JoinCriterion'].Count | Should be 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncJoinRule - using the Local Configuration Manager'{
|
Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncJoinRule - using the Local Configuration Manager'{
|
||||||
It 'Join Rule - desired state' {
|
It 'Join Rule - desired state' {
|
||||||
Configuration TestMimSyncJoinRule
|
Configuration TestMimSyncJoinRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
JoinRule TestMimSyncJoinRule
|
JoinRule TestMimSyncJoinRule
|
||||||
{
|
{
|
||||||
ManagementAgentName = 'TinyHR'
|
ManagementAgentName = 'TinyHR'
|
||||||
CDObjectType = 'contact'
|
CDObjectType = 'contact'
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
JoinCriterion = @(
|
JoinCriterion = @(
|
||||||
JoinCriterion{
|
JoinCriterion{
|
||||||
ID = [Guid]::NewGuid().Guid
|
ID = [Guid]::NewGuid().Guid
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
|
@ -168,7 +168,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncJoinRule - using the Loc
|
||||||
ScriptContext = ''
|
ScriptContext = ''
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
JoinCriterion{
|
JoinCriterion{
|
||||||
ID = [Guid]::NewGuid().Guid
|
ID = [Guid]::NewGuid().Guid
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
|
@ -183,7 +183,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncJoinRule - using the Loc
|
||||||
ScriptContext = 'cd.contact#2:FirstName,LastName->Alias'
|
ScriptContext = 'cd.contact#2:FirstName,LastName->Alias'
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
JoinCriterion{
|
JoinCriterion{
|
||||||
ID = [Guid]::NewGuid().Guid
|
ID = [Guid]::NewGuid().Guid
|
||||||
MVObjectType = ''
|
MVObjectType = ''
|
||||||
|
@ -198,31 +198,31 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncJoinRule - using the Loc
|
||||||
ScriptContext = ''
|
ScriptContext = ''
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TestMimSyncJoinRule -OutputPath "$env:TEMP\TestMimSyncJoinRule"
|
TestMimSyncJoinRule -OutputPath "$env:TEMP\TestMimSyncJoinRule"
|
||||||
Start-DscConfiguration -Path "$env:TEMP\TestMimSyncJoinRule" -Force -Wait -Verbose
|
Start-DscConfiguration -Path "$env:TEMP\TestMimSyncJoinRule" -Force -Wait -Verbose
|
||||||
|
|
||||||
Test-DscConfiguration | Should Be True
|
Test-DscConfiguration | Should Be True
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'Join Rule - incorrect order' {
|
It 'Join Rule - incorrect order' {
|
||||||
Configuration TestMimSyncJoinRule
|
Configuration TestMimSyncJoinRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
JoinRule TestMimSyncJoinRule
|
JoinRule TestMimSyncJoinRule
|
||||||
{
|
{
|
||||||
ManagementAgentName = 'TinyHR'
|
ManagementAgentName = 'TinyHR'
|
||||||
CDObjectType = 'contact'
|
CDObjectType = 'contact'
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
JoinCriterion = @(
|
JoinCriterion = @(
|
||||||
JoinCriterion{
|
JoinCriterion{
|
||||||
ID = [Guid]::NewGuid().Guid
|
ID = [Guid]::NewGuid().Guid
|
||||||
MVObjectType = 'Contacts'##
|
MVObjectType = 'Contacts'##
|
||||||
|
@ -243,7 +243,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncJoinRule - using the Loc
|
||||||
ScriptContext = ''
|
ScriptContext = ''
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
JoinCriterion{
|
JoinCriterion{
|
||||||
ID = [Guid]::NewGuid().Guid
|
ID = [Guid]::NewGuid().Guid
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
|
@ -258,7 +258,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncJoinRule - using the Loc
|
||||||
ScriptContext = 'cd.contact#2:FirstName,LastName->Alias'
|
ScriptContext = 'cd.contact#2:FirstName,LastName->Alias'
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
JoinCriterion{
|
JoinCriterion{
|
||||||
ID = [Guid]::NewGuid().Guid
|
ID = [Guid]::NewGuid().Guid
|
||||||
MVObjectType = ''
|
MVObjectType = ''
|
||||||
|
@ -273,15 +273,15 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncJoinRule - using the Loc
|
||||||
ScriptContext = ''
|
ScriptContext = ''
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TestMimSyncJoinRule -OutputPath "$env:TEMP\TestMimSyncJoinRule"
|
TestMimSyncJoinRule -OutputPath "$env:TEMP\TestMimSyncJoinRule"
|
||||||
Start-DscConfiguration -Path "$env:TEMP\TestMimSyncJoinRule" -Force -Wait -Verbose
|
Start-DscConfiguration -Path "$env:TEMP\TestMimSyncJoinRule" -Force -Wait -Verbose
|
||||||
|
|
||||||
Test-DscConfiguration | Should Be False
|
Test-DscConfiguration | Should Be False
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,23 +1,23 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncMAPartitionData
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncMAPartitionData
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
Describe -Tag 'Build' 'MimSyncMAPartitionData - calling Test-TargetResource Directly'{
|
Describe -Tag 'Build' 'MimSyncMAPartitionData - calling Test-TargetResource Directly'{
|
||||||
|
|
||||||
It 'MimSyncMAPartitionData - desired state' {
|
It 'MimSyncMAPartitionData - desired state' {
|
||||||
$testResourceProperties = @{
|
$testResourceProperties = @{
|
||||||
ManagementAgentName = 'TinyHR'
|
ManagementAgentName = 'TinyHR'
|
||||||
Name = 'default'
|
Name = 'default'
|
||||||
Selected = $true
|
Selected = $true
|
||||||
ObjectClassInclusions = @(
|
ObjectClassInclusions = @(
|
||||||
'person'
|
'person'
|
||||||
'contact'
|
'contact'
|
||||||
'robot'
|
'robot'
|
||||||
'hybrid'
|
'hybrid'
|
||||||
)
|
)
|
||||||
ContainerExclusions = @()
|
ContainerExclusions = @()
|
||||||
ContainerInclusions = @()
|
ContainerInclusions = @()
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
}
|
}
|
||||||
|
|
||||||
$dscResult = Test-TargetResource @testResourceProperties -Verbose
|
$dscResult = Test-TargetResource @testResourceProperties -Verbose
|
||||||
|
@ -26,19 +26,19 @@ Describe -Tag 'Build' 'MimSyncMAPartitionData - calling Test-TargetResource Dire
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'MimSyncMAPartitionData - incorrect ObjectClassInclusions' {
|
It 'MimSyncMAPartitionData - incorrect ObjectClassInclusions' {
|
||||||
$testResourceProperties = @{
|
$testResourceProperties = @{
|
||||||
ManagementAgentName = 'TinyHR'
|
ManagementAgentName = 'TinyHR'
|
||||||
Name = 'default'
|
Name = 'default'
|
||||||
Selected = $true
|
Selected = $true
|
||||||
ObjectClassInclusions = @(
|
ObjectClassInclusions = @(
|
||||||
'person'
|
'person'
|
||||||
'contact'
|
'contact'
|
||||||
'robot'
|
'robot'
|
||||||
'hybird'
|
'hybird'
|
||||||
)
|
)
|
||||||
ContainerExclusions = @()
|
ContainerExclusions = @()
|
||||||
ContainerInclusions = @()
|
ContainerInclusions = @()
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
}
|
}
|
||||||
|
|
||||||
$dscResult = Test-TargetResource @testResourceProperties -Verbose
|
$dscResult = Test-TargetResource @testResourceProperties -Verbose
|
||||||
|
@ -80,24 +80,24 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMAPartitionData - using
|
||||||
It 'MimSyncMAPartitionData - desired state' {
|
It 'MimSyncMAPartitionData - desired state' {
|
||||||
Configuration TestMimSyncMAPartitionDataConfig
|
Configuration TestMimSyncMAPartitionDataConfig
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MimSyncMAPartitionData '[TinyHR]default'
|
MimSyncMAPartitionData '[TinyHR]default'
|
||||||
{
|
{
|
||||||
ManagementAgentName = 'TinyHR'
|
ManagementAgentName = 'TinyHR'
|
||||||
Name = 'default'
|
Name = 'default'
|
||||||
Selected = $true
|
Selected = $true
|
||||||
ObjectClassInclusions = @(
|
ObjectClassInclusions = @(
|
||||||
'person'
|
'person'
|
||||||
'contact'
|
'contact'
|
||||||
'robot'
|
'robot'
|
||||||
'hybrid'
|
'hybrid'
|
||||||
)
|
)
|
||||||
ContainerExclusions = @()
|
ContainerExclusions = @()
|
||||||
ContainerInclusions = @()
|
ContainerInclusions = @()
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncMAPrivateConfiguration
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncMAPrivateConfiguration
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
|
@ -74,21 +74,21 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMAPartitionData - using
|
||||||
It 'MimSyncMAPartitionData - desired state' {
|
It 'MimSyncMAPartitionData - desired state' {
|
||||||
Configuration TestMimSyncMAPrivateConfigurationConfig
|
Configuration TestMimSyncMAPrivateConfigurationConfig
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MimSyncMAPrivateConfiguration Litware
|
MimSyncMAPrivateConfiguration Litware
|
||||||
{
|
{
|
||||||
ManagementAgentName = 'Litware'
|
ManagementAgentName = 'Litware'
|
||||||
ForestName = 'cmlitware.selfhost.corp.microsoft.com'
|
ForestName = 'cmlitware.selfhost.corp.microsoft.com'
|
||||||
ForestLoginDomain = 'cmlitware'
|
ForestLoginDomain = 'cmlitware'
|
||||||
ForestLoginUser = 'administrator'
|
ForestLoginUser = 'administrator'
|
||||||
SignAndSeal = $true
|
SignAndSeal = $true
|
||||||
SslBind = $false
|
SslBind = $false
|
||||||
SslBindCrlCheck = $false
|
SslBindCrlCheck = $false
|
||||||
SimpleBind = $false
|
SimpleBind = $false
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncMVAttributeType
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncMVAttributeType
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
|
@ -50,17 +50,17 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMVAttributeType - using
|
||||||
It 'MimSyncMVAttributeType - desired state' {
|
It 'MimSyncMVAttributeType - desired state' {
|
||||||
Configuration TestMimSyncMVAttributeType
|
Configuration TestMimSyncMVAttributeType
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MVAttributeType TestMimSyncMVAttributeTypeItem
|
MVAttributeType TestMimSyncMVAttributeTypeItem
|
||||||
{
|
{
|
||||||
ID = 'Alias'
|
ID = 'Alias'
|
||||||
SingleValue = $true
|
SingleValue = $true
|
||||||
Indexable = $true
|
Indexable = $true
|
||||||
Indexed = $false
|
Indexed = $false
|
||||||
Syntax = '1.3.6.1.4.1.1466.115.121.1.15'
|
Syntax = '1.3.6.1.4.1.1466.115.121.1.15'
|
||||||
Ensure = 'present'
|
Ensure = 'present'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -75,17 +75,17 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMVAttributeType - using
|
||||||
It 'MimSyncMVAttributeType - incorrect indexed state' {
|
It 'MimSyncMVAttributeType - incorrect indexed state' {
|
||||||
Configuration TestMimSyncMVAttributeType
|
Configuration TestMimSyncMVAttributeType
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MVAttributeType TestMimSyncMVAttributeTypeItem
|
MVAttributeType TestMimSyncMVAttributeTypeItem
|
||||||
{
|
{
|
||||||
ID = 'Alias'
|
ID = 'Alias'
|
||||||
SingleValue = $true
|
SingleValue = $true
|
||||||
Indexable = $true
|
Indexable = $true
|
||||||
Indexed = $true
|
Indexed = $true
|
||||||
Syntax = '1.3.6.1.4.1.1466.115.121.1.15'
|
Syntax = '1.3.6.1.4.1.1466.115.121.1.15'
|
||||||
Ensure = 'present'
|
Ensure = 'present'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,17 +100,17 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMVAttributeType - using
|
||||||
It 'MimSyncMVAttributeType - missing attribute type' {
|
It 'MimSyncMVAttributeType - missing attribute type' {
|
||||||
Configuration TestMimSyncMVAttributeType
|
Configuration TestMimSyncMVAttributeType
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MVAttributeType TestMimSyncMVAttributeTypeItem
|
MVAttributeType TestMimSyncMVAttributeTypeItem
|
||||||
{
|
{
|
||||||
ID = 'Gone'
|
ID = 'Gone'
|
||||||
SingleValue = $true
|
SingleValue = $true
|
||||||
Indexable = $true
|
Indexable = $true
|
||||||
Indexed = $true
|
Indexed = $true
|
||||||
Syntax = '1.3.6.1.4.1.1466.115.121.1.15'
|
Syntax = '1.3.6.1.4.1.1466.115.121.1.15'
|
||||||
Ensure = 'present'
|
Ensure = 'present'
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncMVDeletionRule
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncMVDeletionRule
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
|
@ -38,14 +38,14 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMVDeletionRule - using t
|
||||||
It 'MimSyncMVDeletionRule - desired state' {
|
It 'MimSyncMVDeletionRule - desired state' {
|
||||||
Configuration TestMimSyncMVDeletionRule
|
Configuration TestMimSyncMVDeletionRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MVDeletionRule TestMimSyncMVDeletionRule
|
MVDeletionRule TestMimSyncMVDeletionRule
|
||||||
{
|
{
|
||||||
MVObjectType = 'SyncObject'
|
MVObjectType = 'SyncObject'
|
||||||
Type = 'scripted'
|
Type = 'scripted'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,14 +59,14 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMVDeletionRule - using t
|
||||||
It 'MimSyncMVDeletionRule - desired state' {
|
It 'MimSyncMVDeletionRule - desired state' {
|
||||||
Configuration TestMimSyncMVDeletionRule
|
Configuration TestMimSyncMVDeletionRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MVDeletionRule TestMimSyncMVDeletionRule
|
MVDeletionRule TestMimSyncMVDeletionRule
|
||||||
{
|
{
|
||||||
MVObjectType = 'SyncObject'
|
MVObjectType = 'SyncObject'
|
||||||
Type = 'declared'
|
Type = 'declared'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,22 +80,22 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMVDeletionRule - using t
|
||||||
|
|
||||||
<#
|
<#
|
||||||
#TODO - more tests for other deletion rule types, such as
|
#TODO - more tests for other deletion rule types, such as
|
||||||
Configuration TestMimSyncMVDeletionRule
|
Configuration TestMimSyncMVDeletionRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MVDeletionRule TestMimSyncMVDeletionRule
|
MVDeletionRule TestMimSyncMVDeletionRule
|
||||||
{
|
{
|
||||||
MVObjectType = 'Contact'
|
MVObjectType = 'Contact'
|
||||||
Type = 'declared-any'
|
Type = 'declared-any'
|
||||||
ManagementAgentName = @(
|
ManagementAgentName = @(
|
||||||
'TinyHR'
|
'TinyHR'
|
||||||
'GiantHR'
|
'GiantHR'
|
||||||
'OnPremiseAD'
|
'OnPremiseAD'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#>
|
#>
|
|
@ -1,11 +1,11 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncMVObjectType
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncMVObjectType
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
Describe -Tag 'Build' 'MimSyncMVObjectType - calling Test-TargetResource Directly'{
|
Describe -Tag 'Build' 'MimSyncMVObjectType - calling Test-TargetResource Directly'{
|
||||||
|
|
||||||
It 'MimSyncMVObjectType - desired state' {
|
It 'MimSyncMVObjectType - desired state' {
|
||||||
$attributes = @(
|
$attributes = @(
|
||||||
'#Alias'
|
'#Alias'
|
||||||
'#AssistantName'
|
'#AssistantName'
|
||||||
'#City'
|
'#City'
|
||||||
|
@ -60,18 +60,18 @@ Describe -Tag 'Build' 'MimSyncMVObjectType - calling Test-TargetResource Directl
|
||||||
'#TelephoneAssistant'
|
'#TelephoneAssistant'
|
||||||
'#Title'
|
'#Title'
|
||||||
'#UserPrincipalName'
|
'#UserPrincipalName'
|
||||||
'#WindowsEmailAddress'
|
'#WindowsEmailAddress'
|
||||||
) | ForEach-Object {
|
) | ForEach-Object {
|
||||||
New-CimInstance -ClassName MimSyncMVAttributeBinding -Property @{ID=$PSItem; Required=$false} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncMVAttributeBinding -Property @{ID=$PSItem; Required=$false} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -ID SyncObject -Type structural -Attributes $attributes -Ensure Present -Verbose
|
$dscResult = Test-TargetResource -ID SyncObject -Type structural -Attributes $attributes -Ensure Present -Verbose
|
||||||
|
|
||||||
$dscResult | Should be True
|
$dscResult | Should be True
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'MimSyncMVObjectType - missing attributes' {
|
It 'MimSyncMVObjectType - missing attributes' {
|
||||||
$attributes = @(
|
$attributes = @(
|
||||||
'#Alias'
|
'#Alias'
|
||||||
'#AssistantName'
|
'#AssistantName'
|
||||||
'#City'
|
'#City'
|
||||||
|
@ -126,18 +126,18 @@ Describe -Tag 'Build' 'MimSyncMVObjectType - calling Test-TargetResource Directl
|
||||||
'#TelephoneAssistant'
|
'#TelephoneAssistant'
|
||||||
'#Title'
|
'#Title'
|
||||||
'#UserPrincipalName'
|
'#UserPrincipalName'
|
||||||
'#WindowsEmailAddress'
|
'#WindowsEmailAddress'
|
||||||
) | ForEach-Object {
|
) | ForEach-Object {
|
||||||
New-CimInstance -ClassName MimSyncMVAttributeBinding -Property @{ID=$PSItem; Required=$false} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncMVAttributeBinding -Property @{ID=$PSItem; Required=$false} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -ID SyncObject -Type structural -Attributes $attributes -Ensure Present -Verbose
|
$dscResult = Test-TargetResource -ID SyncObject -Type structural -Attributes $attributes -Ensure Present -Verbose
|
||||||
|
|
||||||
$dscResult | Should be False
|
$dscResult | Should be False
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'MimSyncMVObjectType - one attribute required set to true' {
|
It 'MimSyncMVObjectType - one attribute required set to true' {
|
||||||
$attributes = @(
|
$attributes = @(
|
||||||
'#Alias'
|
'#Alias'
|
||||||
'#AssistantName'
|
'#AssistantName'
|
||||||
'#City'
|
'#City'
|
||||||
|
@ -192,55 +192,55 @@ Describe -Tag 'Build' 'MimSyncMVObjectType - calling Test-TargetResource Directl
|
||||||
'#TelephoneAssistant'
|
'#TelephoneAssistant'
|
||||||
'#Title'
|
'#Title'
|
||||||
'#UserPrincipalName'
|
'#UserPrincipalName'
|
||||||
'#WindowsEmailAddress'
|
'#WindowsEmailAddress'
|
||||||
) | ForEach-Object {
|
) | ForEach-Object {
|
||||||
New-CimInstance -ClassName MimSyncMVAttributeBinding -Property @{ID=$PSItem; Required=$false} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
New-CimInstance -ClassName MimSyncMVAttributeBinding -Property @{ID=$PSItem; Required=$false} -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
($attributes | Where-Object ID -EQ '#Alias').Required = $true
|
($attributes | Where-Object ID -EQ '#Alias').Required = $true
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -ID SyncObject -Type structural -Attributes $attributes -Ensure Present -Verbose
|
$dscResult = Test-TargetResource -ID SyncObject -Type structural -Attributes $attributes -Ensure Present -Verbose
|
||||||
|
|
||||||
$dscResult | Should be False
|
$dscResult | Should be False
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Describe -Tag 'Build' 'MimSyncMVObjectType - calling Get-TargetResource Directly'{
|
Describe -Tag 'Build' 'MimSyncMVObjectType - calling Get-TargetResource Directly'{
|
||||||
It 'Existing MV Object Type' {
|
It 'Existing MV Object Type' {
|
||||||
|
|
||||||
$dscResult = Get-TargetResource -ID SyncObject -Verbose
|
$dscResult = Get-TargetResource -ID SyncObject -Verbose
|
||||||
|
|
||||||
$dscResult | Should Not Be Null
|
$dscResult | Should Not Be Null
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'Existing MV Object Type - Type' {
|
It 'Existing MV Object Type - Type' {
|
||||||
|
|
||||||
$dscResult = Get-TargetResource -ID SyncObject -Verbose
|
$dscResult = Get-TargetResource -ID SyncObject -Verbose
|
||||||
|
|
||||||
$dscResult['Type'] | Should be 'structural'
|
$dscResult['Type'] | Should be 'structural'
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'Missing MV Object Type' {
|
It 'Missing MV Object Type' {
|
||||||
|
|
||||||
$dscResult = Get-TargetResource -ID DivideByObject -Verbose
|
$dscResult = Get-TargetResource -ID DivideByObject -Verbose
|
||||||
|
|
||||||
(-not $dscResult) | Should Be True
|
(-not $dscResult) | Should Be True
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMVObjectType - using the Local Configuration Manager'{
|
Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMVObjectType - using the Local Configuration Manager'{
|
||||||
It 'MimSyncMVObjectType - desired state' {
|
It 'MimSyncMVObjectType - desired state' {
|
||||||
Configuration TestMimSyncMVObjectType
|
Configuration TestMimSyncMVObjectType
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MVObjectType TestMimSyncMVObjectType
|
MVObjectType TestMimSyncMVObjectType
|
||||||
{
|
{
|
||||||
ID = 'SyncObject'
|
ID = 'SyncObject'
|
||||||
Type = 'structural'
|
Type = 'structural'
|
||||||
Attributes = @(
|
Attributes = @(
|
||||||
MVAttributeBinding {ID='#Alias'; Required=$false}
|
MVAttributeBinding {ID='#Alias'; Required=$false}
|
||||||
MVAttributeBinding {ID='#AssistantName'; Required=$false}
|
MVAttributeBinding {ID='#AssistantName'; Required=$false}
|
||||||
MVAttributeBinding {ID='#City'; Required=$false}
|
MVAttributeBinding {ID='#City'; Required=$false}
|
||||||
|
@ -295,31 +295,31 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMVObjectType - using the
|
||||||
MVAttributeBinding {ID='#TelephoneAssistant'; Required=$false}
|
MVAttributeBinding {ID='#TelephoneAssistant'; Required=$false}
|
||||||
MVAttributeBinding {ID='#Title'; Required=$false}
|
MVAttributeBinding {ID='#Title'; Required=$false}
|
||||||
MVAttributeBinding {ID='#UserPrincipalName'; Required=$false}
|
MVAttributeBinding {ID='#UserPrincipalName'; Required=$false}
|
||||||
MVAttributeBinding {ID='#WindowsEmailAddress'; Required=$false}
|
MVAttributeBinding {ID='#WindowsEmailAddress'; Required=$false}
|
||||||
)
|
)
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TestMimSyncMVObjectType -OutputPath "$env:TEMP\TestMimSyncMVObjectType"
|
TestMimSyncMVObjectType -OutputPath "$env:TEMP\TestMimSyncMVObjectType"
|
||||||
Start-DscConfiguration -Path "$env:TEMP\TestMimSyncMVObjectType" -Force -Wait -Verbose
|
Start-DscConfiguration -Path "$env:TEMP\TestMimSyncMVObjectType" -Force -Wait -Verbose
|
||||||
|
|
||||||
Test-DscConfiguration | Should Be True
|
Test-DscConfiguration | Should Be True
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'MimSyncMVObjectType - missing attributes' {
|
It 'MimSyncMVObjectType - missing attributes' {
|
||||||
Configuration TestMimSyncMaData
|
Configuration TestMimSyncMaData
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MVObjectType TestMimSyncMVObjectType
|
MVObjectType TestMimSyncMVObjectType
|
||||||
{
|
{
|
||||||
ID = 'SyncObject'
|
ID = 'SyncObject'
|
||||||
Type = 'structural'
|
Type = 'structural'
|
||||||
Attributes = @(
|
Attributes = @(
|
||||||
MVAttributeBinding {ID='#Alias'; Required=$false}
|
MVAttributeBinding {ID='#Alias'; Required=$false}
|
||||||
MVAttributeBinding {ID='#AssistantName'; Required=$false}
|
MVAttributeBinding {ID='#AssistantName'; Required=$false}
|
||||||
MVAttributeBinding {ID='#City'; Required=$false}
|
MVAttributeBinding {ID='#City'; Required=$false}
|
||||||
|
@ -330,16 +330,16 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMVObjectType - using the
|
||||||
MVAttributeBinding {ID='#CustomAttribute12'; Required=$false}
|
MVAttributeBinding {ID='#CustomAttribute12'; Required=$false}
|
||||||
MVAttributeBinding {ID='#CustomAttribute13'; Required=$false}
|
MVAttributeBinding {ID='#CustomAttribute13'; Required=$false}
|
||||||
MVAttributeBinding {ID='#CustomAttribute14'; Required=$false}
|
MVAttributeBinding {ID='#CustomAttribute14'; Required=$false}
|
||||||
MVAttributeBinding {ID='#CustomAttribute15'; Required=$false}
|
MVAttributeBinding {ID='#CustomAttribute15'; Required=$false}
|
||||||
)
|
)
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TestMimSyncMVObjectType -OutputPath "$env:TEMP\TestMimSyncMVObjectType"
|
TestMimSyncMVObjectType -OutputPath "$env:TEMP\TestMimSyncMVObjectType"
|
||||||
Start-DscConfiguration -Path "$env:TEMP\TestMimSyncMVObjectType" -Force -Wait -Verbose
|
Start-DscConfiguration -Path "$env:TEMP\TestMimSyncMVObjectType" -Force -Wait -Verbose
|
||||||
|
|
||||||
Test-DscConfiguration | Should Be False
|
Test-DscConfiguration | Should Be False
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncMVOptions
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncMVOptions
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
|
@ -38,16 +38,16 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncProjectionRule - using t
|
||||||
It 'MVOptions - desired state' {
|
It 'MVOptions - desired state' {
|
||||||
Configuration TestMimSyncMVOptions
|
Configuration TestMimSyncMVOptions
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MVOptions TestcFimSyncMVOptions
|
MVOptions TestcFimSyncMVOptions
|
||||||
{
|
{
|
||||||
FakeIdentifier = 'foo'
|
FakeIdentifier = 'foo'
|
||||||
ProvisioningType = 'scripted'
|
ProvisioningType = 'scripted'
|
||||||
ExtensionAssemblyName = 'ELMA-MV-Sample.dll'
|
ExtensionAssemblyName = 'ELMA-MV-Sample.dll'
|
||||||
ExtensionApplicationProtection = 'low'
|
ExtensionApplicationProtection = 'low'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,16 +61,16 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncProjectionRule - using t
|
||||||
It 'MVOptions - incorrect state' {
|
It 'MVOptions - incorrect state' {
|
||||||
Configuration TestMimSyncMVOptions
|
Configuration TestMimSyncMVOptions
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
MVOptions TestcFimSyncMVOptions
|
MVOptions TestcFimSyncMVOptions
|
||||||
{
|
{
|
||||||
FakeIdentifier = 'foo'
|
FakeIdentifier = 'foo'
|
||||||
ProvisioningType = 'scripted'
|
ProvisioningType = 'scripted'
|
||||||
ExtensionAssemblyName = 'foo.dll'
|
ExtensionAssemblyName = 'foo.dll'
|
||||||
ExtensionApplicationProtection = 'low'
|
ExtensionApplicationProtection = 'low'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,33 +1,33 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncMaData
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncMaData
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
Describe -Tag 'Build' 'MimSyncMaData - calling Test-TargetResource Directly'{
|
Describe -Tag 'Build' 'MimSyncMaData - calling Test-TargetResource Directly'{
|
||||||
$attributeInclusion = @(
|
$attributeInclusion = @(
|
||||||
'UserID'
|
'UserID'
|
||||||
'FirstName'
|
'FirstName'
|
||||||
'Initial'
|
'Initial'
|
||||||
'LastName'
|
'LastName'
|
||||||
'Title'
|
'Title'
|
||||||
'JobTitle'
|
'JobTitle'
|
||||||
'HireDate'
|
'HireDate'
|
||||||
'Status'
|
'Status'
|
||||||
)
|
)
|
||||||
$controllerConfiguration = New-CimInstance -ClassName MimSyncControllerConfiguration -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
$controllerConfiguration = New-CimInstance -ClassName MimSyncControllerConfiguration -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
ApplicationArchitecture = 'process'
|
ApplicationArchitecture = 'process'
|
||||||
ApplicationProtection = 'low'
|
ApplicationProtection = 'low'
|
||||||
}
|
}
|
||||||
$extension = New-CimInstance -ClassName MimSyncExtension -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
$extension = New-CimInstance -ClassName MimSyncExtension -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
AssemblyName = 'TinyHRExtension.dll'
|
AssemblyName = 'TinyHRExtension.dll'
|
||||||
ApplicationProtection = 'low'
|
ApplicationProtection = 'low'
|
||||||
}
|
}
|
||||||
$passwordSync = New-CimInstance -ClassName MimSyncPasswordSync -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
$passwordSync = New-CimInstance -ClassName MimSyncPasswordSync -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
AllowLowSecurity = $false
|
AllowLowSecurity = $false
|
||||||
MaximumRetryCount = 10
|
MaximumRetryCount = 10
|
||||||
RetryInterval = 60
|
RetryInterval = 60
|
||||||
}
|
}
|
||||||
$provisioningCleanup = New-CimInstance -ClassName MimSyncProvisioningCleanup -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
$provisioningCleanup = New-CimInstance -ClassName MimSyncProvisioningCleanup -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
Type = 'declared'
|
Type = 'declared'
|
||||||
Action = 'make-normal-disconnector'
|
Action = 'make-normal-disconnector'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,13 +62,13 @@ Describe -Tag 'Build' 'MimSyncMaData - calling Test-TargetResource Directly'{
|
||||||
}
|
}
|
||||||
|
|
||||||
$attributeInclusion = @(
|
$attributeInclusion = @(
|
||||||
'UserID'
|
'UserID'
|
||||||
#'FirstName'
|
#'FirstName'
|
||||||
'Initial'
|
'Initial'
|
||||||
#'LastName'
|
#'LastName'
|
||||||
'Title'
|
'Title'
|
||||||
'JobTitle'
|
'JobTitle'
|
||||||
'HireDate'
|
'HireDate'
|
||||||
'Status'
|
'Status'
|
||||||
)
|
)
|
||||||
$dscResult = Test-TargetResource -AttributeInclusion $attributeInclusion @testTargetResource -Verbose
|
$dscResult = Test-TargetResource -AttributeInclusion $attributeInclusion @testTargetResource -Verbose
|
||||||
|
@ -104,7 +104,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMaData - using the Local
|
||||||
It 'MaData - desired state' {
|
It 'MaData - desired state' {
|
||||||
Configuration TestMimSyncMaData
|
Configuration TestMimSyncMaData
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -112,32 +112,32 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMaData - using the Local
|
||||||
{
|
{
|
||||||
Name = 'TinyHR'
|
Name = 'TinyHR'
|
||||||
AttributeInclusion = @(
|
AttributeInclusion = @(
|
||||||
'UserID'
|
'UserID'
|
||||||
'FirstName'
|
'FirstName'
|
||||||
'Initial'
|
'Initial'
|
||||||
'LastName'
|
'LastName'
|
||||||
'Title'
|
'Title'
|
||||||
'JobTitle'
|
'JobTitle'
|
||||||
'HireDate'
|
'HireDate'
|
||||||
'Status'
|
'Status'
|
||||||
)
|
)
|
||||||
Category = 'Delimited'
|
Category = 'Delimited'
|
||||||
ControllerConfiguration = ControllerConfiguration{
|
ControllerConfiguration = ControllerConfiguration{
|
||||||
ApplicationArchitecture = 'process'
|
ApplicationArchitecture = 'process'
|
||||||
ApplicationProtection = 'low'
|
ApplicationProtection = 'low'
|
||||||
}
|
}
|
||||||
Extension = Extension{
|
Extension = Extension{
|
||||||
AssemblyName = 'TinyHRExtension.dll'
|
AssemblyName = 'TinyHRExtension.dll'
|
||||||
ApplicationProtection = 'low'
|
ApplicationProtection = 'low'
|
||||||
}
|
}
|
||||||
PasswordSync = PasswordSync{
|
PasswordSync = PasswordSync{
|
||||||
AllowLowSecurity = $false
|
AllowLowSecurity = $false
|
||||||
MaximumRetryCount = 10
|
MaximumRetryCount = 10
|
||||||
RetryInterval = 60
|
RetryInterval = 60
|
||||||
}
|
}
|
||||||
PasswordSyncAllowed = $false
|
PasswordSyncAllowed = $false
|
||||||
ProvisioningCleanup = ProvisioningCleanup{
|
ProvisioningCleanup = ProvisioningCleanup{
|
||||||
Type = 'declared'
|
Type = 'declared'
|
||||||
Action = 'make-normal-disconnector'
|
Action = 'make-normal-disconnector'
|
||||||
}
|
}
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
|
@ -154,7 +154,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMaData - using the Local
|
||||||
It 'MaData - incorrect Attribute Inclusion' {
|
It 'MaData - incorrect Attribute Inclusion' {
|
||||||
Configuration TestMimSyncMaData
|
Configuration TestMimSyncMaData
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -162,32 +162,32 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMaData - using the Local
|
||||||
{
|
{
|
||||||
Name = 'TinyHR'
|
Name = 'TinyHR'
|
||||||
AttributeInclusion = @(
|
AttributeInclusion = @(
|
||||||
'UserID'
|
'UserID'
|
||||||
#'FirstName'
|
#'FirstName'
|
||||||
'Initial'
|
'Initial'
|
||||||
#'LastName'
|
#'LastName'
|
||||||
'Title'
|
'Title'
|
||||||
'JobTitle'
|
'JobTitle'
|
||||||
'HireDate'
|
'HireDate'
|
||||||
'Status'
|
'Status'
|
||||||
)
|
)
|
||||||
Category = 'Delimited'
|
Category = 'Delimited'
|
||||||
ControllerConfiguration = ControllerConfiguration{
|
ControllerConfiguration = ControllerConfiguration{
|
||||||
ApplicationArchitecture = 'process'
|
ApplicationArchitecture = 'process'
|
||||||
ApplicationProtection = 'low'
|
ApplicationProtection = 'low'
|
||||||
}
|
}
|
||||||
Extension = Extension{
|
Extension = Extension{
|
||||||
AssemblyName = 'TinyHRExtension.dll'
|
AssemblyName = 'TinyHRExtension.dll'
|
||||||
ApplicationProtection = 'low'
|
ApplicationProtection = 'low'
|
||||||
}
|
}
|
||||||
PasswordSync = PasswordSync{
|
PasswordSync = PasswordSync{
|
||||||
AllowLowSecurity = $true
|
AllowLowSecurity = $true
|
||||||
MaximumRetryCount = 10
|
MaximumRetryCount = 10
|
||||||
RetryInterval = 60
|
RetryInterval = 60
|
||||||
}
|
}
|
||||||
PasswordSyncAllowed = $false
|
PasswordSyncAllowed = $false
|
||||||
ProvisioningCleanup = ProvisioningCleanup{
|
ProvisioningCleanup = ProvisioningCleanup{
|
||||||
Type = 'declared'
|
Type = 'declared'
|
||||||
Action = 'make-normal-disconnector'
|
Action = 'make-normal-disconnector'
|
||||||
}
|
}
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
|
@ -204,7 +204,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMaData - using the Local
|
||||||
It 'MaData - incorrect Assembly Name' {
|
It 'MaData - incorrect Assembly Name' {
|
||||||
Configuration TestMimSyncMaData
|
Configuration TestMimSyncMaData
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -212,32 +212,32 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncMaData - using the Local
|
||||||
{
|
{
|
||||||
Name = 'TinyHR'
|
Name = 'TinyHR'
|
||||||
AttributeInclusion = @(
|
AttributeInclusion = @(
|
||||||
'UserID'
|
'UserID'
|
||||||
'FirstName'
|
'FirstName'
|
||||||
'Initial'
|
'Initial'
|
||||||
'LastName'
|
'LastName'
|
||||||
'Title'
|
'Title'
|
||||||
'JobTitle'
|
'JobTitle'
|
||||||
'HireDate'
|
'HireDate'
|
||||||
'Status'
|
'Status'
|
||||||
)
|
)
|
||||||
Category = 'Delimited'
|
Category = 'Delimited'
|
||||||
ControllerConfiguration = ControllerConfiguration{
|
ControllerConfiguration = ControllerConfiguration{
|
||||||
ApplicationArchitecture = 'process'
|
ApplicationArchitecture = 'process'
|
||||||
ApplicationProtection = 'low'
|
ApplicationProtection = 'low'
|
||||||
}
|
}
|
||||||
Extension = Extension{
|
Extension = Extension{
|
||||||
AssemblyName = 'GiantHRExtension.dll'
|
AssemblyName = 'GiantHRExtension.dll'
|
||||||
ApplicationProtection = 'low'
|
ApplicationProtection = 'low'
|
||||||
}
|
}
|
||||||
PasswordSync = PasswordSync{
|
PasswordSync = PasswordSync{
|
||||||
AllowLowSecurity = $true
|
AllowLowSecurity = $true
|
||||||
MaximumRetryCount = 10
|
MaximumRetryCount = 10
|
||||||
RetryInterval = 60
|
RetryInterval = 60
|
||||||
}
|
}
|
||||||
PasswordSyncAllowed = $false
|
PasswordSyncAllowed = $false
|
||||||
ProvisioningCleanup = ProvisioningCleanup{
|
ProvisioningCleanup = ProvisioningCleanup{
|
||||||
Type = 'declared'
|
Type = 'declared'
|
||||||
Action = 'make-normal-disconnector'
|
Action = 'make-normal-disconnector'
|
||||||
}
|
}
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
|
@ -1,4 +1,4 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncProjectionRule
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncProjectionRule
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncProjectionRule - using t
|
||||||
It 'Projection Rule - desired state' {
|
It 'Projection Rule - desired state' {
|
||||||
Configuration TestMimSyncProjectionRule
|
Configuration TestMimSyncProjectionRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
|
@ -75,7 +75,7 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncProjectionRule - using t
|
||||||
It 'Projection Rule - incorrect type' {
|
It 'Projection Rule - incorrect type' {
|
||||||
Configuration TestMimSyncProjectionRule
|
Configuration TestMimSyncProjectionRule
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
|
@ -1,23 +1,23 @@
|
||||||
$dscResource = Get-DscResource -Module MimSyncDsc -Name MimSyncRunProfile
|
$dscResource = Get-DscResource -Module MimDsc -Name MimSyncRunProfile
|
||||||
|
|
||||||
Import-Module -Name $dscResource.Path -Force
|
Import-Module -Name $dscResource.Path -Force
|
||||||
|
|
||||||
Describe -Tag 'Build' 'MimSyncRunProfile - calling Test-TargetResource Directly'{
|
Describe -Tag 'Build' 'MimSyncRunProfile - calling Test-TargetResource Directly'{
|
||||||
|
|
||||||
It 'MimSyncRunProfile - desired state' {
|
It 'MimSyncRunProfile - desired state' {
|
||||||
$RunSteps = @(
|
$RunSteps = @(
|
||||||
New-CimInstance -ClassName MimSyncRunStep -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
New-CimInstance -ClassName MimSyncRunStep -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
StepType = 'full-import'
|
StepType = 'full-import'
|
||||||
StepSubType = @('to-cs')
|
StepSubType = @('to-cs')
|
||||||
PartitionIdentifier = '{08F64D3F-B82C-44E2-AC6F-9F680DECFEBE}'
|
PartitionIdentifier = '{08F64D3F-B82C-44E2-AC6F-9F680DECFEBE}'
|
||||||
InputFile = 'tinyhr.txt'
|
InputFile = 'tinyhr.txt'
|
||||||
PageSize = 0
|
PageSize = 0
|
||||||
Timeout = 0
|
Timeout = 0
|
||||||
ObjectDeleteLimit = 0
|
ObjectDeleteLimit = 0
|
||||||
ObjectProcessLimit = 0
|
ObjectProcessLimit = 0
|
||||||
LogFilePath = ''
|
LogFilePath = ''
|
||||||
DropFileName = ''
|
DropFileName = ''
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -ManagementAgentName TinyHR -Name FISO -RunSteps $RunSteps -Ensure Present -Verbose
|
$dscResult = Test-TargetResource -ManagementAgentName TinyHR -Name FISO -RunSteps $RunSteps -Ensure Present -Verbose
|
||||||
|
@ -26,19 +26,19 @@ Describe -Tag 'Build' 'MimSyncRunProfile - calling Test-TargetResource Directly'
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'MimSyncRunProfile - incorrect step type' {
|
It 'MimSyncRunProfile - incorrect step type' {
|
||||||
$RunSteps = @(
|
$RunSteps = @(
|
||||||
New-CimInstance -ClassName MimSyncRunStep -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
New-CimInstance -ClassName MimSyncRunStep -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
StepType = 'apply-rules'
|
StepType = 'apply-rules'
|
||||||
StepSubType = @('reevaluate-flow-connectors')
|
StepSubType = @('reevaluate-flow-connectors')
|
||||||
PartitionIdentifier = '{08F64D3F-B82C-44E2-AC6F-9F680DECFEBE}'
|
PartitionIdentifier = '{08F64D3F-B82C-44E2-AC6F-9F680DECFEBE}'
|
||||||
InputFile = 'tinyhr.txt'
|
InputFile = 'tinyhr.txt'
|
||||||
PageSize = 0
|
PageSize = 0
|
||||||
Timeout = 0
|
Timeout = 0
|
||||||
ObjectDeleteLimit = 0
|
ObjectDeleteLimit = 0
|
||||||
ObjectProcessLimit = 0
|
ObjectProcessLimit = 0
|
||||||
LogFilePath = ''
|
LogFilePath = ''
|
||||||
DropFileName = ''
|
DropFileName = ''
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -ManagementAgentName TinyHR -Name FISO -RunSteps $RunSteps -Ensure Present -Verbose
|
$dscResult = Test-TargetResource -ManagementAgentName TinyHR -Name FISO -RunSteps $RunSteps -Ensure Present -Verbose
|
||||||
|
@ -47,19 +47,19 @@ Describe -Tag 'Build' 'MimSyncRunProfile - calling Test-TargetResource Directly'
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'MimSyncRunProfile - incorrect input file' {
|
It 'MimSyncRunProfile - incorrect input file' {
|
||||||
$RunSteps = @(
|
$RunSteps = @(
|
||||||
New-CimInstance -ClassName MimSyncRunStep -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
New-CimInstance -ClassName MimSyncRunStep -ClientOnly -Namespace root/microsoft/windows/desiredstateconfiguration -Property @{
|
||||||
StepType = 'full-import'
|
StepType = 'full-import'
|
||||||
StepSubType = @('to-cs')
|
StepSubType = @('to-cs')
|
||||||
PartitionIdentifier = '{08F64D3F-B82C-44E2-AC6F-9F680DECFEBE}'
|
PartitionIdentifier = '{08F64D3F-B82C-44E2-AC6F-9F680DECFEBE}'
|
||||||
InputFile = 'HumongousHR.txt'
|
InputFile = 'HumongousHR.txt'
|
||||||
PageSize = 0
|
PageSize = 0
|
||||||
Timeout = 0
|
Timeout = 0
|
||||||
ObjectDeleteLimit = 0
|
ObjectDeleteLimit = 0
|
||||||
ObjectProcessLimit = 0
|
ObjectProcessLimit = 0
|
||||||
LogFilePath = ''
|
LogFilePath = ''
|
||||||
DropFileName = ''
|
DropFileName = ''
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
$dscResult = Test-TargetResource -ManagementAgentName TinyHR -Name FISO -RunSteps $RunSteps -Ensure Present -Verbose
|
$dscResult = Test-TargetResource -ManagementAgentName TinyHR -Name FISO -RunSteps $RunSteps -Ensure Present -Verbose
|
||||||
|
@ -101,30 +101,30 @@ Describe -Tag 'RunsInLocalConfigurationManager' 'MimSyncRunProfile - using the L
|
||||||
It 'MimSyncRunProfile - desired state' {
|
It 'MimSyncRunProfile - desired state' {
|
||||||
Configuration TestMimSyncRunProfile
|
Configuration TestMimSyncRunProfile
|
||||||
{
|
{
|
||||||
Import-DscResource -ModuleName MimSyncDsc
|
Import-DscResource -ModuleName MimDsc
|
||||||
|
|
||||||
Node (hostname)
|
Node (hostname)
|
||||||
{
|
{
|
||||||
RunProfile '[TinyHR]FISO'
|
RunProfile '[TinyHR]FISO'
|
||||||
{
|
{
|
||||||
ManagementAgentName = 'TinyHR'
|
ManagementAgentName = 'TinyHR'
|
||||||
Name = 'FISO'
|
Name = 'FISO'
|
||||||
RunSteps = @(
|
RunSteps = @(
|
||||||
RunStep{
|
RunStep{
|
||||||
StepType = 'full-import'
|
StepType = 'full-import'
|
||||||
StepSubType = @('to-cs')
|
StepSubType = @('to-cs')
|
||||||
PartitionIdentifier = '{08F64D3F-B82C-44E2-AC6F-9F680DECFEBE}'
|
PartitionIdentifier = '{08F64D3F-B82C-44E2-AC6F-9F680DECFEBE}'
|
||||||
InputFile = 'tinyhr.txt'
|
InputFile = 'tinyhr.txt'
|
||||||
PageSize = 0
|
PageSize = 0
|
||||||
Timeout = 0
|
Timeout = 0
|
||||||
ObjectDeleteLimit = 0
|
ObjectDeleteLimit = 0
|
||||||
ObjectProcessLimit = 0
|
ObjectProcessLimit = 0
|
||||||
LogFilePath = ''
|
LogFilePath = ''
|
||||||
DropFileName = ''
|
DropFileName = ''
|
||||||
FakeIdentifier = [Guid]::Empty
|
FakeIdentifier = [Guid]::Empty
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
Ensure = 'Present'
|
Ensure = 'Present'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
### Build script called by Azure Pipelines
|
||||||
|
Write-Host "I'm the build script"
|
||||||
|
|
||||||
|
# Install Pester module if it is not already installed
|
||||||
|
if (-not (Get-Module -Name Pester -ListAvailable))
|
||||||
|
{
|
||||||
|
Write-Host "Installing Pester"
|
||||||
|
Install-Module -Name Pester -Scope CurrentUser -Force -Confirm:$false
|
||||||
|
}
|
||||||
|
|
||||||
|
### Find out what version of Pester we have
|
||||||
|
Get-Module Pester -ListAvailable
|
||||||
|
|
||||||
|
Write-Host 'Copy MimDsc module files to Program Files'
|
||||||
|
Remove-Item "$env:ProgramFiles\WindowsPowerShell\Modules\MimDsc" -Force -Verbose -ErrorAction SilentlyContinue
|
||||||
|
New-Item -ItemType Directory -Path "$env:ProgramFiles\WindowsPowerShell\Modules\MimDsc" -Verbose -Force | Out-Null
|
||||||
|
Copy-Item * "$env:ProgramFiles\WindowsPowerShell\Modules\MimDsc" -Recurse -Verbose -Force -Exclude .git
|
||||||
|
|
||||||
|
Write-Host 'Copy Sync Configuration Files'
|
||||||
|
New-Item -ItemType Directory -Path "$env:ProgramData\MimDsc\Svrexport" -Verbose -Force | Out-Null
|
||||||
|
Copy-Item -Path .\Tests\MimSyncServerConfiguration\* "$env:ProgramData\MimDsc\Svrexport\" -Force -Verbose
|
||||||
|
|
||||||
|
### Run Tests
|
||||||
|
$TestResults = Invoke-Pester -Script .\Tests\*.tests.ps1 -Tag Build -ExcludeTag RunsInLocalConfigurationManager -OutputFile MimSyncDsc.testresults.xml -OutputFormat NUnitXML
|
||||||
|
|
||||||
|
if($TestResults.FailedCount -gt 0)
|
||||||
|
{
|
||||||
|
Write-Error -Message "Test pass failed: `n`t$($TestResults.PassedCount) passed`n`t$($TestResults.FailedCount) failed "
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче