Skip to content

Instantly share code, notes, and snippets.

@FH-Inway
Last active October 5, 2024 12:15
Show Gist options
  • Select an option

  • Save FH-Inway/f378e936b07364229722a1676d83c44a to your computer and use it in GitHub Desktop.

Select an option

Save FH-Inway/f378e936b07364229722a1676d83c44a to your computer and use it in GitHub Desktop.
Test Invoke-PSMDTemplate
Import-Module PSFramework -MaximumVersion 1.11.343
Import-Module PSModuleDevelopment -MaximumVersion 2.2.11.168
Invoke-PSMDTemplate CommandTest -Name Invoke-PSMDTemplate
Describe "Invoke-PSMDTemplate Unit Tests" -Tag "Unit" {
BeforeAll {
# Place here all things needed to prepare for the tests
}
AfterAll {
# Here is where all the cleanup tasks go
}
Describe "Ensuring unchanged command signature" {
It "should have the expected parameter sets" {
(Get-Command Invoke-PSMDTemplate).ParameterSets.Name | Should -Be 'NamePath', 'NameStore', 'Template'
}
It 'Should have the expected parameter TemplateName' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['TemplateName']
$parameter.Name | Should -Be 'TemplateName'
$parameter.ParameterType.ToString() | Should -Be System.String
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be 'NamePath', 'NameStore'
$parameter.ParameterSets.Keys | Should -Contain 'NamePath'
$parameter.ParameterSets['NamePath'].IsMandatory | Should -Be $True
$parameter.ParameterSets['NamePath'].Position | Should -Be 0
$parameter.ParameterSets['NamePath'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['NamePath'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['NamePath'].ValueFromRemainingArguments | Should -Be $False
$parameter.ParameterSets.Keys | Should -Contain 'NameStore'
$parameter.ParameterSets['NameStore'].IsMandatory | Should -Be $True
$parameter.ParameterSets['NameStore'].Position | Should -Be 0
$parameter.ParameterSets['NameStore'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['NameStore'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['NameStore'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter Template' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['Template']
$parameter.Name | Should -Be 'Template'
$parameter.ParameterType.ToString() | Should -Be PSModuleDevelopment.Template.TemplateInfo[]
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be 'Template'
$parameter.ParameterSets.Keys | Should -Contain 'Template'
$parameter.ParameterSets['Template'].IsMandatory | Should -Be $True
$parameter.ParameterSets['Template'].Position | Should -Be -2147483648
$parameter.ParameterSets['Template'].ValueFromPipeline | Should -Be $True
$parameter.ParameterSets['Template'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['Template'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter Store' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['Store']
$parameter.Name | Should -Be 'Store'
$parameter.ParameterType.ToString() | Should -Be System.String
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be 'NameStore'
$parameter.ParameterSets.Keys | Should -Contain 'NameStore'
$parameter.ParameterSets['NameStore'].IsMandatory | Should -Be $False
$parameter.ParameterSets['NameStore'].Position | Should -Be -2147483648
$parameter.ParameterSets['NameStore'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['NameStore'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['NameStore'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter Path' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['Path']
$parameter.Name | Should -Be 'Path'
$parameter.ParameterType.ToString() | Should -Be System.String
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be 'NamePath'
$parameter.ParameterSets.Keys | Should -Contain 'NamePath'
$parameter.ParameterSets['NamePath'].IsMandatory | Should -Be $True
$parameter.ParameterSets['NamePath'].Position | Should -Be -2147483648
$parameter.ParameterSets['NamePath'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['NamePath'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['NamePath'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter OutPath' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['OutPath']
$parameter.Name | Should -Be 'OutPath'
$parameter.ParameterType.ToString() | Should -Be System.String
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be 2
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter Name' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['Name']
$parameter.Name | Should -Be 'Name'
$parameter.ParameterType.ToString() | Should -Be System.String
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be 1
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter Encoding' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['Encoding']
$parameter.Name | Should -Be 'Encoding'
$parameter.ParameterType.ToString() | Should -Be PSFramework.Parameter.EncodingParameter
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be -2147483648
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter NoFolder' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['NoFolder']
$parameter.Name | Should -Be 'NoFolder'
$parameter.ParameterType.ToString() | Should -Be System.Management.Automation.SwitchParameter
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be -2147483648
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter Parameters' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['Parameters']
$parameter.Name | Should -Be 'Parameters'
$parameter.ParameterType.ToString() | Should -Be System.Collections.Hashtable
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be -2147483648
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter Raw' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['Raw']
$parameter.Name | Should -Be 'Raw'
$parameter.ParameterType.ToString() | Should -Be System.Management.Automation.SwitchParameter
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be -2147483648
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter GenerateObjects' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['GenerateObjects']
$parameter.Name | Should -Be 'GenerateObjects'
$parameter.ParameterType.ToString() | Should -Be System.Management.Automation.SwitchParameter
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be -2147483648
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter Force' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['Force']
$parameter.Name | Should -Be 'Force'
$parameter.ParameterType.ToString() | Should -Be System.Management.Automation.SwitchParameter
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be -2147483648
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter Silent' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['Silent']
$parameter.Name | Should -Be 'Silent'
$parameter.ParameterType.ToString() | Should -Be System.Management.Automation.SwitchParameter
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be -2147483648
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter NoConfigFile' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['NoConfigFile']
$parameter.Name | Should -Be 'NoConfigFile'
$parameter.ParameterType.ToString() | Should -Be System.Management.Automation.SwitchParameter
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be -2147483648
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
It 'Should have the expected parameter EnableException' {
$parameter = (Get-Command Invoke-PSMDTemplate).Parameters['EnableException']
$parameter.Name | Should -Be 'EnableException'
$parameter.ParameterType.ToString() | Should -Be System.Management.Automation.SwitchParameter
$parameter.IsDynamic | Should -Be $False
$parameter.ParameterSets.Keys | Should -Be '__AllParameterSets'
$parameter.ParameterSets.Keys | Should -Contain '__AllParameterSets'
$parameter.ParameterSets['__AllParameterSets'].IsMandatory | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].Position | Should -Be -2147483648
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipeline | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromPipelineByPropertyName | Should -Be $False
$parameter.ParameterSets['__AllParameterSets'].ValueFromRemainingArguments | Should -Be $False
}
}
Describe "Testing parameterset NamePath" {
<#
NamePath -TemplateName -Path
NamePath -TemplateName -Path -OutPath -Name -Encoding -NoFolder -Parameters -Raw -GenerateObjects -Force -Silent -NoConfigFile -EnableException
#>
}
Describe "Testing parameterset NameStore" {
<#
NameStore -TemplateName
NameStore -TemplateName -Store -OutPath -Name -Encoding -NoFolder -Parameters -Raw -GenerateObjects -Force -Silent -NoConfigFile -EnableException
#>
}
Describe "Testing parameterset Template" {
<#
Template -Template
Template -Template -OutPath -Name -Encoding -NoFolder -Parameters -Raw -GenerateObjects -Force -Silent -NoConfigFile -EnableException
#>
}
}
Describe "Invoke-PSMDTemplate Unit Tests" -Tag "Unit" {
BeforeAll {
# Place here all things needed to prepare for the tests
}
AfterAll {
# Here is where all the cleanup tasks go
}
Describe "Ensuring unchanged command signature" {
It "should have the expected parameter sets" {
(Get-Command Invoke-PSMDTemplate).ParameterSets.Name | Should -Be
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment