tests/Integration/demo3.tests.ps1
if ($PSScriptRoot) { $here = $PSScriptRoot } else { $here = Join-Path $pwd.Path '*\tests\Integration\' -Resolve } Write-verbose "Here: $here" import-module $here\..\..\datum.psd1 -force Describe 'Test Datum overrides' { Context 'Most specific Merge behavior' { BeforeAll { $Datum = New-Datumstructure -DefinitionFile (Join-path $here '.\assets\Demo3\Datum.yml' -Resolve) $AllNodes = @($Datum.AllNodes.psobject.Properties | ForEach-Object { $Node = $Datum.AllNodes.($_.Name) (@{} + $Node) }) $ConfigurationData = @{ AllNodes = $AllNodes Datum = $Datum } } $TestCases = @( @{Node = 'Node1'; PropertyPath = 'Disks'; Count = 1} @{Node = 'Node2'; PropertyPath = 'Disks'; Count = 3} ) It "The count of Datum <PropertyPath> for Node <Node> should be '<Count>'." -TestCases $TestCases { Param($Node,$PropertyPath,$Count) $MyNode = $AllNodes.Where({$_.Name -eq $Node}) (Resolve-NodeProperty -PropertyPath $PropertyPath -Node $MyNode -DatumTree $Datum) | Should -HaveCount $Count } it "should return False as value" { $MyNode = $AllNodes.Where( {$_.Name -eq "Node3"}) lookup -PropertyPath StartVM -Node $MyNode -DatumTree $Datum | Should -BeFalse } } } |