tests/Private/Assert-ProviderParameterSet.Tests.ps1
|
BeforeAll { Import-Module (Resolve-Path (Join-Path $PSScriptRoot '..\..\PSCumulus.psd1')).Path -Force } Describe 'Assert-ProviderParameterSet' { Context 'matching provider and parameter set' { It 'passes for Azure/Azure' { InModuleScope PSCumulus { { Assert-ProviderParameterSet -Provider Azure -ParameterSetName Azure } | Should -Not -Throw } } It 'passes for AWS/AWS' { InModuleScope PSCumulus { { Assert-ProviderParameterSet -Provider AWS -ParameterSetName AWS } | Should -Not -Throw } } It 'passes for GCP/GCP' { InModuleScope PSCumulus { { Assert-ProviderParameterSet -Provider GCP -ParameterSetName GCP } | Should -Not -Throw } } It 'passes for Azure/AzureTag' { InModuleScope PSCumulus { { Assert-ProviderParameterSet -Provider Azure -ParameterSetName AzureTag } | Should -Not -Throw } } It 'passes for AWS/AWSTag' { InModuleScope PSCumulus { { Assert-ProviderParameterSet -Provider AWS -ParameterSetName AWSTag } | Should -Not -Throw } } It 'passes for GCP/GCPTag' { InModuleScope PSCumulus { { Assert-ProviderParameterSet -Provider GCP -ParameterSetName GCPTag } | Should -Not -Throw } } } Context 'mismatched provider and parameter set' { It 'throws when Azure provider uses AWS parameter set' { InModuleScope PSCumulus { { Assert-ProviderParameterSet -Provider Azure -ParameterSetName AWS } | Should -Throw } } It 'throws when AWS provider uses GCP parameter set' { InModuleScope PSCumulus { { Assert-ProviderParameterSet -Provider AWS -ParameterSetName GCP } | Should -Throw } } It 'throws when GCP provider uses Azure parameter set' { InModuleScope PSCumulus { { Assert-ProviderParameterSet -Provider GCP -ParameterSetName Azure } | Should -Throw } } } Context 'unsupported parameter set' { It 'throws for an unknown parameter set name' { InModuleScope PSCumulus { { Assert-ProviderParameterSet -Provider Azure -ParameterSetName '__AllParameterSets' } | Should -Throw "Unsupported parameter set '__AllParameterSets'." } } } } |