internal/functions/Get-TypeContent.Tests.ps1
Describe 'Get-TypeContent' -Tag 'Unit' { BeforeAll { $ModuleRootPath = Split-Path -Parent $PSCommandPath | Split-Path -Parent | Split-Path -Parent Import-Module "$ModuleRootPath/Puppet.Dsc.psd1" . $PSCommandPath.Replace('.Tests.ps1', '.ps1') } InModuleScope Puppet.Dsc { Context 'Basic Verification' { BeforeAll { # We cannot effectively mock out the underlying object, so we need to retrieve a # well-known DSC resource at a specific version $ExampleResource = Get-DscResource -Name Archive -Module @{ ModuleName = 'PSDscResources' ModuleVersion = '2.12.0.0' } Mock Get-TypeParameterContent {} } It 'Returns an appropriate representation of a Puppet Resource API type' { $Result = Get-TypeContent -DscResource $ExampleResource $Result | Should -MatchExactly "name: 'dsc_archive'" $Result | Should -MatchExactly "dscmeta_resource_friendly_name: 'Archive'" $Result | Should -MatchExactly "dscmeta_resource_name: 'MSFT_Archive'" $Result | Should -MatchExactly "dscmeta_resource_implementation: 'MOF'" $Result | Should -MatchExactly "dscmeta_module_name: 'PSDscResources'" $Result | Should -MatchExactly "dscmeta_module_version: '2.12.0.0'" $Result | Should -MatchExactly 'The DSC Archive resource type.' $Result | Should -MatchExactly 'Automatically generated from version 2.12.0.0' $Result | Should -MatchExactly "features: \['simple_get_filter', 'canonicalize', 'custom_insync'\]" $Result | Should -MatchExactly 'validation_mode:' } It 'Attempts to interpolate the parameter information once' { Should -Invoke Get-TypeParameterContent -Times 1 -Scope Context } } } } |