. $PSScriptRoot\..\..\Load-PesterModules.ps1 $here = Split-Path -Parent $MyInvocation.MyCommand.Path $sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.tests\.', '.' $functionPath = Join-Path -Path $here -ChildPath $sut Write-Host "Overriding SUT: $functionPath" Import-Module $functionPath -Force $moduleForMock = "" ############################ # These Are Not Unit Tests # ############################ # These just attempt to ensure nobody accidentally mangles the hashtable array returned by the function # which would result in hilarity, but also a bunch of bad things too Describe "Get-SupportedPlatformAPMVersionMap" { Context "Poor Life Choices" { It "Has One and Only One Element With a Null PlatformMaximumVersion" { # Did this test fail? You accidentally have no elements or more than 1 elements in the APM <-> Platform Version Map with a Null Max Value. # # There can be only one. # - Connor MacLeod $nullMaxVersions = Get-SupportedPlatformAPMVersionMap | Where-Object { $null -eq $_.PlatformMaximumVersion } ([hashtable[]]$nullMaxVersions).Count | Should -Be 1 } It "Only Has One Element With a 0.0.0 PlatformMinimumVersion" { # Did this test fail? You accidentally have no elements or more than 1 elements in the APM <-> Platform Version Map with a Min Value Equivilant to 0 # # One is the lonliest number that you'll ever do # - Three Dog Night $zeroMinVersions = Get-SupportedPlatformAPMVersionMap | Where-Object { ("0.0.0" -eq $_.PlatformMinimumVersion) -or ("0.0.0.0" -eq $_.PlatformMinimumVersion) } ([hashtable[]]$zeroMinVersions).Count | Should -Be 1 } It "Doesn't Have Any Duplicate APM Version Entries" { # Did this test fail? You accidentally have more than one element with the same APM version. That shouldn't be needed. Discuss with the author if you think I'm wrong! # # You cannot duplicate this, you can't do me, I'm complicated # -Lil Nacho $map = Get-SupportedPlatformAPMVersionMap $groupedValues = $map | ForEach-Object { $_.APMVersion } | Group-Object $groupedValues | Where-Object {$_.Count -gt 1} | Select-Object -ExpandProperty Name | Should -BeNullOrEmpty } } }