Tests/PSDataKit.Tests.ps1
$ModuleManifestName = 'PSDataKit.psd1' $ModuleManifestPath = "$PSScriptRoot\..\$ModuleManifestName" Remove-Module "PSDataKit" -Force -ErrorAction Ignore Import-Module -Name $ModuleManifestPath -Force Write-Host "Remove and Import PSDataKit module" Describe 'Module Manifest Tests' { It 'Passes Test-ModuleManifest' { Test-ModuleManifest -Path $ModuleManifestPath | Should Not BeNullOrEmpty $? | Should Be $true } } InModuleScope PSDataKit { Describe 'PSDataKit merging capabilities (Merge-Hashtables)' { Context "secondary parameter" { It 'Merge with $null secondary parameter ' { $primary = @{ foo = "foo" bar = "bar" } $secondary = $null $result = Merge-Hashtables -primary $primary -secondary $secondary $result | Should -BeExactly $primary } It 'Merge with BeNullOrEmpty values inside secondary parameter ' { $primary = @{ nullValue = "nullValue" emptyValue = "emptyValue" emptyArray = "emptyArray" emptyHashtable = "emptyHashtable" } $secondary = @{ emptyValue = "" nullValue = $null emptyArray = @() emptyHashtable = @{ } } $result = Merge-Hashtables -primary $primary -secondary $secondary $result.nullValue | Should -Be $primary.nullValue $result.emptyValue | Should -Be $primary.emptyValue $result.emptyArray | Should -Be $primary.emptyArray $result.emptyHashtable | Should -Be $primary.emptyHashtable $result.Test | Should -Be $primary.Test } It 'Merge with BeNullOrEmpty values inside secondary parameter when primary is hashtable' { $primary = @{ foo = @{ bar = "bar" } } $secondary = @{ foo = $null } $result = Merge-Hashtables -primary $primary -secondary $secondary $result.foo | Should -Be $primary.foo } } } } |