SnakeMove.Tests.ps1
|
BeforeAll { Import-Module "$PSScriptRoot\SnakeMove.psm1" -Force } Describe "Get-SnakeMove" { It "Returns exactly 5 results" { $results = Get-SnakeMove -Quiet $results.Count | Should -Be 5 } It "Each result has all required properties" { $requiredProperties = @( "Technique", "MITRE_ID", "Status", "Risk", "Detail", "ComputerName", "ScanUser", "ScanTime" ) $results = Get-SnakeMove -Quiet foreach ($result in $results) { foreach ($property in $requiredProperties) { $result.PSObject.Properties.Name | Should -Contain $property } } } It "Status values are always valid" { $validStatuses = @("OPEN", "PARTIAL", "CLOSED", "ERROR") $results = Get-SnakeMove -Quiet foreach ($result in $results) { $result.Status | Should -BeIn $validStatuses } } It "Risk values are always valid" { $validRisks = @("High", "Medium", "Low") $results = Get-SnakeMove -Quiet foreach ($result in $results) { $result.Risk | Should -BeIn $validRisks } } It "Returns PSCustomObject array" { $results = Get-SnakeMove -Quiet foreach ($result in $results) { $result | Should -BeOfType [PSCustomObject] } } It "ComputerName matches local machine" { $results = Get-SnakeMove -Quiet foreach ($result in $results) { $result.ComputerName | Should -Be $env:COMPUTERNAME } } } |