MegaBites-AI/Windows-powershell
0372
1# Copyright (c) Microsoft Corporation.2# Licensed under the MIT License.3Describe "Get-PSProvider" -Tags "CI" {4 It "Should be able to call with no parameters without error" {5 { Get-PSProvider } | Should -Not -Throw6 }7 8 It "Should be able to call the filesystem provider" {9 { Get-PSProvider FileSystem } | Should -Not -Throw10 11 $actual = Get-PSProvider FileSystem12 13 $actual.Name | Should -BeExactly "FileSystem"14 15 $actual.Capabilities | Should -BeExactly "Filter, ShouldProcess, Credentials"16 }17 18 It "Should be able to call a provider with a wildcard expression" {19 { Get-PSProvider File*m } | Should -Not -Throw20 }21 22 It "Should be able to pipe the output" {23 $actual = Get-PSProvider24 25 { $actual | Format-List } | Should -Not -Throw26 }27 28 Context 'ItemSeparator properties' {29 BeforeAll {30 $testCases = if ($IsWindows) {31 @(32 @{Provider = 'FileSystem'; ItemSeparator = '\'; AltItemSeparator = '/'}33 @{Provider = 'Variable'; ItemSeparator = '\'; AltItemSeparator = '/'}34 @{Provider = 'Function'; ItemSeparator = '\'; AltItemSeparator = '/'}35 @{Provider = 'Alias'; ItemSeparator = '\'; AltItemSeparator = '/'}36 @{Provider = 'Environment'; ItemSeparator = '\'; AltItemSeparator = '/'}37 @{Provider = 'Certificate'; ItemSeparator = '\'; AltItemSeparator = '/'}38 @{Provider = 'Registry'; ItemSeparator = '\'; AltItemSeparator = '\'}39 )40 }41 else {42 @(43 @{Provider = 'FileSystem'; ItemSeparator = '/'; AltItemSeparator = '\'}44 @{Provider = 'Variable'; ItemSeparator = '/'; AltItemSeparator = '\'}45 @{Provider = 'Function'; ItemSeparator = '/'; AltItemSeparator = '\'}46 @{Provider = 'Alias'; ItemSeparator = '/'; AltItemSeparator = '\'}47 @{Provider = 'Environment'; ItemSeparator = '/'; AltItemSeparator = '\'}48 )49 }50 }51 52 It '<Provider> provider has ItemSeparator properties' -TestCases $testCases {53 param ($Provider, $ItemSeparator, $AltItemSeparator)54 55 (Get-PSProvider $Provider).ItemSeparator | Should -Be $ItemSeparator56 (Get-PSProvider $Provider).AltItemSeparator | Should -Be $AltItemSeparator57 }58 59 It 'ItemSeparator properties is read-only in <Provider> provider' -TestCases $testCases {60 param ($Provider, $ItemSeparator, $AltItemSeparator)61 62 { (Get-PSProvider $Provider).ItemSeparator = $null } | Should -Throw63 { (Get-PSProvider $Provider).AltItemSeparator = $null } | Should -Throw64 }65 }66}67 