From 83453d1e5c8f54453b64f1b4a1e045cf37596fef Mon Sep 17 00:00:00 2001
From: "dependabot-preview[bot]"
<27856297+dependabot-preview[bot]@users.noreply.github.com>
Date: Mon, 23 Sep 2019 15:42:39 -0700
Subject: [PATCH] Bump PSDesiredStateConfiguration from 2.0.3 to 2.0.4 (#10603)
---
src/Modules/PSGalleryModules.csproj | 2 +-
.../PSDesiredStateConfiguration.Tests.ps1 | 325 ++++++++++--------
.../configuration.Tests.ps1 | 6 +-
3 files changed, 184 insertions(+), 149 deletions(-)
diff --git a/src/Modules/PSGalleryModules.csproj b/src/Modules/PSGalleryModules.csproj
index 35c10a0e40..e3f057662e 100644
--- a/src/Modules/PSGalleryModules.csproj
+++ b/src/Modules/PSGalleryModules.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/test/powershell/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.Tests.ps1 b/test/powershell/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.Tests.ps1
index f14a1e1a2d..3fbc05d7c6 100644
--- a/test/powershell/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.Tests.ps1
+++ b/test/powershell/Modules/PSDesiredStateConfiguration/PSDesiredStateConfiguration.Tests.ps1
@@ -1,8 +1,6 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
-
-Function Install-ModuleIfMissing
-{
+Function Install-ModuleIfMissing {
param(
[parameter(Mandatory)]
[String]
@@ -17,50 +15,67 @@ Function Install-ModuleIfMissing
$module = Get-Module -Name $Name -ListAvailable -ErrorAction Ignore | Sort-Object -Property Version -Descending | Select-Object -First 1
- if(!$module -or $module.Version -lt $MinimumVersion)
- {
+ if (!$module -or $module.Version -lt $MinimumVersion) {
Write-Verbose "Installing module '$Name' ..." -Verbose
Install-Module -Name $Name -Force -SkipPublisherCheck:$SkipPublisherCheck.IsPresent
}
}
-Function Test-IsInvokeDscResourceEnable
-{
+Function Test-IsInvokeDscResourceEnable {
return [ExperimentalFeature]::IsEnabled("PSDesiredStateConfiguration.InvokeDscResource")
}
Describe "Test PSDesiredStateConfiguration" -tags CI {
Context "Module loading" {
BeforeAll {
- $commands = Get-Command -Module PSDesiredStateConfiguration
- $expectedCommandCount = 3
- if (Test-IsInvokeDscResourceEnable)
- {
- $expectedCommandCount ++
- }
- }
- BeforeEach {
- }
- AfterEach {
- }
- AfterAll {
- }
+ Function BeCommand {
+ [CmdletBinding()]
+ Param(
+ [object[]] $ActualValue,
+ [string] $CommandName,
+ [string] $ModuleName,
+ [switch]$Negate
+ )
- It "The module should have $expectedCommandCount commands" {
- if ($commands.Count -ne $expectedCommandCount)
- {
- $modulePath = (Get-Module PSDesiredStateConfiguration).Path
- Write-Verbose -Verbose -Message "PSDesiredStateConfiguration Path: $modulePath"
- $commands | Out-String | Write-Verbose -Verbose
+ $failure = if ($Negate) {
+ "Expected: Command $CommandName should not exist in module $ModuleName"
+ }
+ else {
+ "Expected: Command $CommandName should exist in module $ModuleName"
+ }
+
+ $succeeded = if ($Negate) {
+ ($ActualValue | Where-Object { $_.Name -eq $CommandName }).count -eq 0
+ }
+ else {
+ ($ActualValue | Where-Object { $_.Name -eq $CommandName }).count -gt 0
+ }
+
+ return [PSCustomObject]@{
+ Succeeded = $succeeded
+ FailureMessage = $failure
+ }
}
- $commands.Count | Should -Be $expectedCommandCount
+
+ Add-AssertionOperator -Name 'HaveCommand' -Test $Function:BeCommand -SupportsArrayInput
+
+ $commands = Get-Command -Module PSDesiredStateConfiguration
}
It "The module should have the Configuration Command" {
- $commands | Where-Object {$_.Name -eq 'Configuration'} | Should -Not -BeNullOrEmpty
+ $commands | Should -HaveCommand -CommandName 'Configuration' -ModuleName PSDesiredStateConfiguration
}
+
+ It "The module should have the Configuration Command" {
+ $commands | Should -HaveCommand -CommandName 'New-DscChecksum' -ModuleName PSDesiredStateConfiguration
+ }
+
It "The module should have the Get-DscResource Command" {
- $commands | Where-Object {$_.Name -eq 'Get-DscResource'} | Should -Not -BeNullOrEmpty
+ $commands | Should -HaveCommand -CommandName 'Get-DscResource' -ModuleName PSDesiredStateConfiguration
+ }
+
+ It "The module should have the Invoke-DscResource Command" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
+ $commands | Should -HaveCommand -CommandName 'Invoke-DscResource' -ModuleName PSDesiredStateConfiguration
}
}
Context "Get-DscResource - Composite Resources" {
@@ -71,75 +86,72 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
$testCases = @(
@{
TestCaseName = 'case mismatch in resource name'
- Name = 'groupset'
- ModuleName = 'PSDscResources'
+ Name = 'groupset'
+ ModuleName = 'PSDscResources'
}
@{
TestCaseName = 'Both names have matching case'
- Name = 'GroupSet'
- ModuleName = 'PSDscResources'
+ Name = 'GroupSet'
+ ModuleName = 'PSDscResources'
}
@{
TestCaseName = 'case mismatch in module name'
- Name = 'GroupSet'
- ModuleName = 'psdscResources'
+ Name = 'GroupSet'
+ ModuleName = 'psdscResources'
}
)
}
+
AfterAll {
$Global:ProgressPreference = $origProgress
}
+
it "should be able to get - " -TestCases $testCases {
param($Name)
- if($IsWindows)
- {
+ if ($IsWindows) {
Set-ItResult -Pending -Because "Will only find script from PSDesiredStateConfiguration without modulename"
}
- if($IsLinux)
- {
+ if ($IsLinux) {
Set-ItResult -Pending -Because "https://github.com/PowerShell/PSDesiredStateConfiguration/issues/26"
}
$resource = Get-DscResource -Name $name
$resource | Should -Not -BeNullOrEmpty
$resource.Name | Should -Be $Name
- if (Test-IsInvokeDscResourceEnable)
- {
+ if (Test-IsInvokeDscResourceEnable) {
$resource.ImplementationDetail | Should -BeNullOrEmpty
- } else
- {
+ }
+ else {
$resource.ImplementationDetail | Should -BeNullOrEmpty
}
}
it "should be able to get from - " -TestCases $testCases {
- param($Name,$ModuleName, $PendingBecause)
+ param($Name, $ModuleName, $PendingBecause)
- if($IsLinux)
- {
+ if ($IsLinux) {
Set-ItResult -Pending -Because "https://github.com/PowerShell/PSDesiredStateConfiguration/issues/26"
}
- if($PendingBecause)
- {
+ if ($PendingBecause) {
Set-ItResult -Pending -Because $PendingBecause
}
+
$resource = Get-DscResource -Name $Name -Module $ModuleName
$resource | Should -Not -BeNullOrEmpty
$resource.Name | Should -Be $Name
- if (Test-IsInvokeDscResourceEnable)
- {
+ if (Test-IsInvokeDscResourceEnable) {
$resource.ImplementationDetail | Should -BeNullOrEmpty
}
- else
- {
+ else {
$resource.ImplementationDetail | Should -BeNullOrEmpty
}
}
}
+
Context "Get-DscResource - ScriptResources" {
BeforeAll {
$origProgress = $global:ProgressPreference
@@ -147,26 +159,27 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
Install-ModuleIfMissing -Name PSDscResources -Force
+ # Install PowerShellGet only if PowerShellGet 2.2.1 or newer does not exist
Install-ModuleIfMissing -Name PowerShellGet -MinimumVersion '2.2.1'
$module = Get-Module PowerShellGet -ListAvailable | Sort-Object -Property Version -Descending | Select-Object -First 1
- $psGetModuleSpecification = @{ModuleName=$module.Name;ModuleVersion=$module.Version.ToString()}
+ $psGetModuleSpecification = @{ModuleName = $module.Name; ModuleVersion = $module.Version.ToString() }
$psGetModuleCount = @(Get-Module PowerShellGet -ListAvailable).Count
$testCases = @(
@{
TestCaseName = 'case mismatch in resource name'
- Name = 'script'
- ModuleName = 'PSDscResources'
+ Name = 'script'
+ ModuleName = 'PSDscResources'
}
@{
TestCaseName = 'Both names have matching case'
- Name = 'Script'
- ModuleName = 'PSDscResources'
+ Name = 'Script'
+ ModuleName = 'PSDscResources'
}
@{
TestCaseName = 'case mismatch in module name'
- Name = 'Script'
- ModuleName = 'psdscResources'
+ Name = 'Script'
+ ModuleName = 'psdscResources'
}
<#
Add these back when PowerShellGet is fixed https://github.com/PowerShell/PowerShellGet/pull/529
@@ -188,6 +201,7 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
#>
)
}
+
AfterAll {
$Global:ProgressPreference = $origProgress
}
@@ -195,27 +209,22 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
it "should be able to get - " -TestCases $testCases {
param($Name)
- if($IsWindows)
- {
+ if ($IsWindows) {
Set-ItResult -Pending -Because "Will only find script from PSDesiredStateConfiguration without modulename"
}
- if($PendingBecause)
- {
+ if ($PendingBecause) {
Set-ItResult -Pending -Because $PendingBecause
}
$resources = @(Get-DscResource -Name $name)
$resources | Should -Not -BeNullOrEmpty
- foreach($resource in $resource)
- {
+ foreach ($resource in $resource) {
$resource.Name | Should -Be $Name
- if (Test-IsInvokeDscResourceEnable)
- {
+ if (Test-IsInvokeDscResourceEnable) {
$resource.ImplementationDetail | Should -Be 'ScriptBased'
}
- else
- {
+ else {
$resource.ImplementationDetail | Should -BeNullOrEmpty
}
@@ -223,29 +232,24 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
}
it "should be able to get from - " -TestCases $testCases {
- param($Name,$ModuleName, $PendingBecause)
+ param($Name, $ModuleName, $PendingBecause)
- if($IsLinux)
- {
+ if ($IsLinux) {
Set-ItResult -Pending -Because "https://github.com/PowerShell/PSDesiredStateConfiguration/issues/12 and https://github.com/PowerShell/PowerShellGet/pull/529"
}
- if($PendingBecause)
- {
+ if ($PendingBecause) {
Set-ItResult -Pending -Because $PendingBecause
}
$resources = @(Get-DscResource -Name $name -Module $ModuleName)
$resources | Should -Not -BeNullOrEmpty
- foreach($resource in $resource)
- {
+ foreach ($resource in $resource) {
$resource.Name | Should -Be $Name
- if (Test-IsInvokeDscResourceEnable)
- {
+ if (Test-IsInvokeDscResourceEnable) {
$resource.ImplementationDetail | Should -Be 'ScriptBased'
}
- else
- {
+ else {
$resource.ImplementationDetail | Should -BeNullOrEmpty
}
}
@@ -256,7 +260,7 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
{
Get-DscResource -Name antoehusatnoheusntahoesnuthao -Module tanshoeusnthaosnetuhasntoheusnathoseun
} |
- Should -Throw -ErrorId 'Microsoft.PowerShell.Commands.WriteErrorException,CheckResourceFound'
+ Should -Throw -ErrorId 'Microsoft.PowerShell.Commands.WriteErrorException,CheckResourceFound'
}
}
Context "Get-DscResource - Class base Resources" {
@@ -268,65 +272,61 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
$classTestCases = @(
@{
TestCaseName = 'Good case'
- Name = 'XmlFileContentResource'
- ModuleName = 'XmlContentDsc'
+ Name = 'XmlFileContentResource'
+ ModuleName = 'XmlContentDsc'
}
@{
TestCaseName = 'Module Name case mismatch'
- Name = 'XmlFileContentResource'
- ModuleName = 'xmlcontentdsc'
+ Name = 'XmlFileContentResource'
+ ModuleName = 'xmlcontentdsc'
}
@{
TestCaseName = 'Resource name case mismatch'
- Name = 'xmlfilecontentresource'
- ModuleName = 'XmlContentDsc'
+ Name = 'xmlfilecontentresource'
+ ModuleName = 'XmlContentDsc'
}
)
}
+
AfterAll {
- $Global:ProgressPreference = $origProgress
+ $global:ProgressPreference = $origProgress
}
it "should be able to get class resource - from - " -TestCases $classTestCases {
- param($Name,$ModuleName, $PendingBecause)
+ param($Name, $ModuleName, $PendingBecause)
- if($PendingBecause)
- {
+ if ($PendingBecause) {
Set-ItResult -Pending -Because $PendingBecause
}
$resource = Get-DscResource -Name $Name -Module $ModuleName
$resource | Should -Not -BeNullOrEmpty
$resource.Name | Should -Be $Name
- if (Test-IsInvokeDscResourceEnable)
- {
+ if (Test-IsInvokeDscResourceEnable) {
$resource.ImplementationDetail | Should -Be 'ClassBased'
}
- else
- {
+ else {
$resource.ImplementationDetail | Should -BeNullOrEmpty
}
}
it "should be able to get class resource - - " -TestCases $classTestCases {
- param($Name,$ModuleName, $PendingBecause)
- if($IsWindows)
- {
+ param($Name, $ModuleName, $PendingBecause)
+ if ($IsWindows) {
Set-ItResult -Pending -Because "https://github.com/PowerShell/PSDesiredStateConfiguration/issues/19"
}
- if($PendingBecause)
- {
+
+ if ($PendingBecause) {
Set-ItResult -Pending -Because $PendingBecause
}
+
$resource = Get-DscResource -Name $Name
$resource | Should -Not -BeNullOrEmpty
$resource.Name | Should -Be $Name
- if (Test-IsInvokeDscResourceEnable)
- {
+ if (Test-IsInvokeDscResourceEnable) {
$resource.ImplementationDetail | Should -Be 'ClassBased'
}
- else
- {
+ else {
$resource.ImplementationDetail | Should -BeNullOrEmpty
}
}
@@ -336,51 +336,51 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
$origProgress = $global:ProgressPreference
$global:ProgressPreference = 'SilentlyContinue'
$module = Get-InstalledModule -Name PsDscResources -ErrorAction Ignore
- if($module)
- {
+ if ($module) {
Write-Verbose "removing PSDscResources, tests will re-install..." -Verbose
Uninstall-Module -Name PsDscResources -AllVersions -Force
}
}
+
AfterAll {
$Global:ProgressPreference = $origProgress
}
- Context "mof resources" {
+
+ Context "mof resources" {
BeforeAll {
$dscMachineStatusCases = @(
@{
- value = '1'
+ value = '1'
expectedResult = $true
}
@{
- value = '$true'
+ value = '$true'
expectedResult = $true
}
@{
- value = '0'
+ value = '0'
expectedResult = $false
}
@{
- value = '$false'
+ value = '$false'
expectedResult = $false
}
)
Install-ModuleIfMissing -Name PowerShellGet -Force -SkipPublisherCheck -MinimumVersion '2.2.1'
+ Install-ModuleIfMissing -Name xWebAdministration
$module = Get-Module PowerShellGet -ListAvailable | Sort-Object -Property Version -Descending | Select-Object -First 1
- $psGetModuleSpecification = @{ModuleName=$module.Name;ModuleVersion=$module.Version.ToString()}
+ $psGetModuleSpecification = @{ModuleName = $module.Name; ModuleVersion = $module.Version.ToString() }
}
it "Set method should work" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
- if(!$IsLinux)
- {
- $result = Invoke-DscResource -Name PSModule -ModuleName $psGetModuleSpecification -Method set -Property @{
- Name = 'PsDscResources'
+ if (!$IsLinux) {
+ $result = Invoke-DscResource -Name PSModule -ModuleName $psGetModuleSpecification -Method set -Property @{
+ Name = 'PsDscResources'
InstallationPolicy = 'Trusted'
}
}
- else
- {
+ else {
# workraound because of https://github.com/PowerShell/PowerShellGet/pull/529
Install-ModuleIfMissing -Name PsDscResources -Force
}
@@ -397,62 +397,92 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
# using create scriptBlock because $using: doesn't work with existing Invoke-DscResource
# Verified in Windows PowerShell on 20190814
- $result = Invoke-DscResource -Name Script -ModuleName PSDscResources -Method Set -Property @{TestScript = {Write-Output 'test';return $false};GetScript = {return @{}}; SetScript = [scriptblock]::Create("`$global:DSCMachineStatus = $value;return")}
+ $result = Invoke-DscResource -Name Script -ModuleName PSDscResources -Method Set -Property @{TestScript = { Write-Output 'test'; return $false }; GetScript = { return @{ } }; SetScript = [scriptblock]::Create("`$global:DSCMachineStatus = $value;return") }
$result | Should -Not -BeNullOrEmpty
$result.RebootRequired | Should -BeExactly $expectedResult
}
- it "Test method should return false" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
- $result = Invoke-DscResource -Name Script -ModuleName PSDscResources -Method Test -Property @{TestScript = {Write-Output 'test';return $false};GetScript = {return @{}}; SetScript = {return}}
+
+ it "Test method should return false" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
+ $result = Invoke-DscResource -Name Script -ModuleName PSDscResources -Method Test -Property @{TestScript = { Write-Output 'test'; return $false }; GetScript = { return @{ } }; SetScript = { return } }
$result | Should -Not -BeNullOrEmpty
$result.InDesiredState | Should -BeFalse -Because "Test method return false"
}
- it "Test method should return true" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
- $result = Invoke-DscResource -Name Script -ModuleName PSDscResources -Method Test -Property @{TestScript = {Write-Verbose 'test';return $true};GetScript = {return @{}}; SetScript = {return}}
- $result | Should -BeTrue -Because "Test method return true"
- }
- it "Test method should return true with moduleSpecification" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
- $module = get-module PsDscResources -ListAvailable
- $moduleSpecification = @{ModuleName=$module.Name;ModuleVersion=$module.Version.ToString()}
- $result = Invoke-DscResource -Name Script -ModuleName $moduleSpecification -Method Test -Property @{TestScript = {Write-Verbose 'test';return $true};GetScript = {return @{}}; SetScript = {return}}
+
+ it "Test method should return true" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
+ $result = Invoke-DscResource -Name Script -ModuleName PSDscResources -Method Test -Property @{TestScript = { Write-Verbose 'test'; return $true }; GetScript = { return @{ } }; SetScript = { return } }
$result | Should -BeTrue -Because "Test method return true"
}
- it "Invalid moduleSpecification" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
+ it "Test method should return true with moduleSpecification" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
+ $module = get-module PsDscResources -ListAvailable
+ $moduleSpecification = @{ModuleName = $module.Name; ModuleVersion = $module.Version.ToString() }
+ $result = Invoke-DscResource -Name Script -ModuleName $moduleSpecification -Method Test -Property @{TestScript = { Write-Verbose 'test'; return $true }; GetScript = { return @{ } }; SetScript = { return } }
+ $result | Should -BeTrue -Because "Test method return true"
+ }
+
+ it "Invalid moduleSpecification" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
Set-ItResult -Pending -Because "https://github.com/PowerShell/PSDesiredStateConfiguration/issues/17"
- $moduleSpecification = @{ModuleName='PsDscResources';ModuleVersion='99.99.99.993'}
+ $moduleSpecification = @{ModuleName = 'PsDscResources'; ModuleVersion = '99.99.99.993' }
{
- Invoke-DscResource -Name Script -ModuleName $moduleSpecification -Method Test -Property @{TestScript = {Write-Host 'test';return $true};GetScript = {return @{}}; SetScript = {return}} -ErrorAction Stop
+ Invoke-DscResource -Name Script -ModuleName $moduleSpecification -Method Test -Property @{TestScript = { Write-Host 'test'; return $true }; GetScript = { return @{ } }; SetScript = { return } } -ErrorAction Stop
} |
- Should -Throw -ErrorId 'InvalidResourceSpecification,Invoke-DscResource' -ExpectedMessage 'Invalid Resource Name ''Script'' or module specification.'
+ Should -Throw -ErrorId 'InvalidResourceSpecification,Invoke-DscResource' -ExpectedMessage 'Invalid Resource Name ''Script'' or module specification.'
+ }
+
+ it "Resource with embedded resource not supported and a warning should be produced" {
+
+ if (!(Test-IsInvokeDscResourceEnable)) {
+ Set-ItResult -Skipped -Because "Feature not enabled"
+ }
+
+ if (!$IsMacOS) {
+ Set-ItResult -Skipped -Because "Not applicable on Windows and xWebAdministration resources don't load on linux"
+ }
+
+ try {
+ Invoke-DscResource -Name xWebSite -ModuleName 'xWebAdministration' -Method Test -Property @{TestScript = 'foobar' } -ErrorAction Stop -WarningVariable warnings
+ }
+ catch{
+ #this will fail too, but that is nat what we are testing...
+ }
+
+ $warnings.Count | Should -Be 1 -because "There should be 1 warning on macOS and Linux"
+ $warnings[0] | Should -Match 'embedded resources.*not support'
+ }
+
+ it "Using PsDscRunAsCredential should say not supported" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
+ {
+ Invoke-DscResource -Name Script -ModuleName PSDscResources -Method Set -Property @{TestScript = { Write-Output 'test'; return $false }; GetScript = { return @{ } }; SetScript = {return}; PsDscRunAsCredential='natoheu'} -ErrorAction Stop
+ } |
+ Should -Throw -ErrorId 'PsDscRunAsCredentialNotSupport,Invoke-DscResource'
}
# waiting on Get-DscResource to be fixed
- it "Invalid module name" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
+ it "Invalid module name" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
Set-ItResult -Pending -Because "https://github.com/PowerShell/PSDesiredStateConfiguration/issues/17"
{
- Invoke-DscResource -Name Script -ModuleName santoheusnaasonteuhsantoheu -Method Test -Property @{TestScript = {Write-Host 'test';return $true};GetScript = {return @{}}; SetScript = {return}} -ErrorAction Stop
+ Invoke-DscResource -Name Script -ModuleName santoheusnaasonteuhsantoheu -Method Test -Property @{TestScript = { Write-Host 'test'; return $true }; GetScript = { return @{ } }; SetScript = { return } } -ErrorAction Stop
} |
- Should -Throw -ErrorId 'Microsoft.PowerShell.Commands.WriteErrorException,CheckResourceFound'
+ Should -Throw -ErrorId 'Microsoft.PowerShell.Commands.WriteErrorException,CheckResourceFound'
}
- it "Invalid resource name" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
+ it "Invalid resource name" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
if ($IsWindows) {
Set-ItResult -Pending -Because "https://github.com/PowerShell/PSDesiredStateConfiguration/issues/17"
}
{
- Invoke-DscResource -Name santoheusnaasonteuhsantoheu -Method Test -Property @{TestScript = {Write-Host 'test';return $true};GetScript = {return @{}}; SetScript = {return}} -ErrorAction Stop
+ Invoke-DscResource -Name santoheusnaasonteuhsantoheu -Method Test -Property @{TestScript = { Write-Host 'test'; return $true }; GetScript = { return @{ } }; SetScript = { return } } -ErrorAction Stop
} |
- Should -Throw -ErrorId 'Microsoft.PowerShell.Commands.WriteErrorException,CheckResourceFound'
+ Should -Throw -ErrorId 'Microsoft.PowerShell.Commands.WriteErrorException,CheckResourceFound'
}
- it "Get method should work" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
- if($IsLinux)
- {
+ it "Get method should work" -Skip:(!(Test-IsInvokeDscResourceEnable)) {
+ if ($IsLinux) {
Set-ItResult -Pending -Because "https://github.com/PowerShell/PSDesiredStateConfiguration/issues/12 and https://github.com/PowerShell/PowerShellGet/pull/529"
}
- $result = Invoke-DscResource -Name PSModule -ModuleName $psGetModuleSpecification -Method Get -Property @{ Name = 'PsDscResources'}
+ $result = Invoke-DscResource -Name PSModule -ModuleName $psGetModuleSpecification -Method Get -Property @{ Name = 'PsDscResources' }
$result | Should -Not -BeNullOrEmpty
$result.Author | Should -BeLike 'Microsoft*'
$result.InstallationPolicy | Should -BeOfType [string]
@@ -466,13 +496,16 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
$result.ModuleType | Should -Be 'Manifest'
}
}
+
Context "Class Based Resources" {
BeforeAll {
Install-ModuleIfMissing -Name XmlContentDsc -Force
}
+
AfterAll {
$Global:ProgressPreference = $origProgress
}
+
BeforeEach {
$testXmlPath = 'TestDrive:\test.xml'
@'
@@ -484,14 +517,15 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
'@ | Out-File -FilePath $testXmlPath -Encoding utf8NoBOM
$resolvedXmlPath = (Resolve-Path -Path $testXmlPath).ProviderPath
}
- it 'Set method should work' -Skip:(!(Test-IsInvokeDscResourceEnable)) {
+
+ it 'Set method should work' -Skip:(!(Test-IsInvokeDscResourceEnable)) {
param(
$value,
$ExpectedResult
)
$testString = '890574209347509120348'
- $result = Invoke-DscResource -Name XmlFileContentResource -ModuleName XmlContentDsc -Property @{Path=$resolvedXmlPath; XPath = '/configuration/appSetting/Test1';Ensure='Present'; Attributes=@{ TestValue2 = $testString; Name = $testString } } -Method Set
+ $result = Invoke-DscResource -Name XmlFileContentResource -ModuleName XmlContentDsc -Property @{Path = $resolvedXmlPath; XPath = '/configuration/appSetting/Test1'; Ensure = 'Present'; Attributes = @{ TestValue2 = $testString; Name = $testString } } -Method Set
$result | Should -Not -BeNullOrEmpty
$result.RebootRequired | Should -BeFalse
$testXmlPath | Should -FileContentMatch $testString
@@ -499,4 +533,3 @@ Describe "Test PSDesiredStateConfiguration" -tags CI {
}
}
}
-
diff --git a/test/powershell/Modules/PSDesiredStateConfiguration/configuration.Tests.ps1 b/test/powershell/Modules/PSDesiredStateConfiguration/configuration.Tests.ps1
index eb6f55b75b..c423e8d339 100644
--- a/test/powershell/Modules/PSDesiredStateConfiguration/configuration.Tests.ps1
+++ b/test/powershell/Modules/PSDesiredStateConfiguration/configuration.Tests.ps1
@@ -1,12 +1,14 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
-
Describe "DSC MOF Compilation" -tags "CI" {
BeforeAll {
- Import-module PSDesiredStateConfiguration
$module = Get-Module PowerShellGet -ListAvailable | Sort-Object -Property Version -Descending | Select-Object -First 1
$psGetModuleVersion = $module.Version.ToString()
+ if (!$env:DSC_HOME)
+ {
+ Import-Module PSDesiredStateConfiguration
+ }
}
It "Should be able to compile a MOF using PSModule resource" {