@@ -210,6 +210,15 @@ BeforeAll {
210210
211211 CleanupPsModulePath
212212 }
213+
214+ function EnsureDSCv3TestResourcePresence ()
215+ {
216+ $resourcePath = Join-Path $env: LOCALAPPDATA " Microsoft\WindowsApps\test-file.dsc.resource.json"
217+ if (-not (Test-Path $resourcePath ))
218+ {
219+ wingetdev dscv3 test-file -- manifest - o $resourcePath
220+ }
221+ }
213222}
214223
215224Describe ' Test-GroupPolicies' {
@@ -283,6 +292,17 @@ Describe 'Get configuration' {
283292 $set | Should -Not - BeNullOrEmpty
284293 }
285294
295+ It ' Get configuration and details DSCv3' {
296+ EnsureDSCv3TestResourcePresence
297+
298+ $testFile = GetConfigTestDataFile " ShowDetails_DSCv3.yml"
299+ $set = Get-WinGetConfiguration - File $testFile
300+ $set | Should -Not - BeNullOrEmpty
301+
302+ $set = Get-WinGetConfigurationDetails - Set $set
303+ $set | Should -Not - BeNullOrEmpty
304+ }
305+
286306 It ' Get details piped' {
287307 EnsureModuleState $e2eTestModule $false
288308
@@ -441,6 +461,25 @@ Describe 'Invoke-WinGetConfiguration' {
441461 Test-Path $expectedModule | Should - Be $true
442462 }
443463
464+ It ' From DSCv3' {
465+ EnsureDSCv3TestResourcePresence
466+
467+ $testFile = GetConfigTestDataFile " ShowDetails_DSCv3.yml"
468+ $set = Get-WinGetConfiguration - File $testFile
469+ $set | Should -Not - BeNullOrEmpty
470+
471+ $result = Invoke-WinGetConfiguration - AcceptConfigurationAgreements - Set $set
472+ $result | Should -Not - BeNullOrEmpty
473+ $result.ResultCode | Should - Be 0
474+ $result.UnitResults.Count | Should - Be 1
475+ $result.UnitResults [0 ].State | Should - Be " Completed"
476+ $result.UnitResults [0 ].ResultCode | Should - Be 0
477+
478+ $expectedFile = Join-Path $ (GetConfigTestDataPath) " ShowDetails_DSCv3.txt"
479+ Test-Path $expectedFile | Should - Be $true
480+ Get-Content $expectedFile - Raw | Should - Be " Contents!"
481+ }
482+
444483 It ' Piped' {
445484 $testFile = GetConfigTestDataFile " Configure_TestRepo.yml"
446485 $result = Get-WinGetConfiguration - File $testFile | Invoke-WinGetConfiguration - AcceptConfigurationAgreements
@@ -629,6 +668,31 @@ Describe 'Start|Complete-WinGetConfiguration' {
629668 Test-Path $expectedModule | Should - Be $true
630669 }
631670
671+ It ' From DSCv3' {
672+ EnsureDSCv3TestResourcePresence
673+
674+ $testFile = GetConfigTestDataFile " ShowDetails_DSCv3.yml"
675+ $set = Get-WinGetConfiguration - File $testFile
676+ $set | Should -Not - BeNullOrEmpty
677+
678+ $job = Start-WinGetConfiguration - AcceptConfigurationAgreements - Set $set
679+ $job | Should -Not - BeNullOrEmpty
680+
681+ $result = Complete-WinGetConfiguration - ConfigurationJob $job
682+ $result | Should -Not - BeNullOrEmpty
683+ $result.ResultCode | Should - Be 0
684+ $result.UnitResults.Count | Should - Be 1
685+ $result.UnitResults [0 ].State | Should - Be " Completed"
686+ $result.UnitResults [0 ].ResultCode | Should - Be 0
687+
688+ $expectedFile = Join-Path $ (GetConfigTestDataPath) " ShowDetails_DSCv3.txt"
689+ Test-Path $expectedFile | Should - Be $true
690+ Get-Content $expectedFile - Raw | Should - Be " Contents!"
691+
692+ # Verify can't be used after.
693+ { Start-WinGetConfiguration - AcceptConfigurationAgreements - Set $set } | Should - Throw " Operation is not valid due to the current state of the object."
694+ }
695+
632696 It ' Piped' {
633697 DeleteConfigTxtFiles
634698 $testFile = GetConfigTestDataFile " Configure_TestRepo.yml"
@@ -765,6 +829,39 @@ Describe 'Test-WinGetConfiguration' {
765829 $result.UnitResults [0 ].ResultCode | Should - Be 0
766830 }
767831
832+ It ' Negative DSCv3' {
833+ EnsureDSCv3TestResourcePresence
834+
835+ $testFile = GetConfigTestDataFile " ShowDetails_DSCv3.yml"
836+ $set = Get-WinGetConfiguration - File $testFile
837+ $set | Should -Not - BeNullOrEmpty
838+
839+ $result = Test-WinGetConfiguration - AcceptConfigurationAgreements - Set $set
840+ $result | Should -Not - BeNullOrEmpty
841+ $result.TestResult | Should - Be " Negative"
842+ $result.UnitResults.Count | Should - Be 1
843+ $result.UnitResults [0 ].TestResult | Should - Be " Negative"
844+ $result.UnitResults [0 ].ResultCode | Should - Be 0
845+ }
846+
847+ It ' Positive DSCv3' {
848+ EnsureDSCv3TestResourcePresence
849+
850+ $testFile = GetConfigTestDataFile " ShowDetails_DSCv3.yml"
851+ $set = Get-WinGetConfiguration - File $testFile
852+ $set | Should -Not - BeNullOrEmpty
853+
854+ $expectedFile = Join-Path $ (GetConfigTestDataPath) " ShowDetails_DSCv3.txt"
855+ Set-Content - Path $expectedFile - Value " Contents!" - NoNewline
856+
857+ $result = Test-WinGetConfiguration - AcceptConfigurationAgreements - Set $set
858+ $result | Should -Not - BeNullOrEmpty
859+ $result.TestResult | Should - Be " Positive"
860+ $result.UnitResults.Count | Should - Be 1
861+ $result.UnitResults [0 ].TestResult | Should - Be " Positive"
862+ $result.UnitResults [0 ].ResultCode | Should - Be 0
863+ }
864+
768865 It ' Piped' {
769866 $testFile = GetConfigTestDataFile " Configure_TestRepo.yml"
770867 $result = Get-WinGetConfiguration - File $testFile | Test-WinGetConfiguration - AcceptConfigurationAgreements
0 commit comments