public/SourceQuery.Tests.ps1
$here = Split-Path -Parent $MyInvocation.MyCommand.Path $sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.' . "$here\$sut" Describe "SourceQuery" -Tag 'Unit' { Context 'Behavior' { $gameservers = [ordered]@{ # Source cs2 = @{ Address = 'cs.startersclan.com' Port = 27125 Engine = 'Source' } csgo = @{ Address = 'cs.startersclan.com' Port = 27115 Engine = 'Source' } left4dead2 = @{ Address = 'l4d.startersclan.com' Port = 27015 Engine = 'Source' } hl2mp = @{ Address = 'hl.startersclan.com' Port = 27215 Engine = 'Source' } # Goldsource cstrike = @{ Address = 'cs.startersclan.com' Port = 27815 Engine = 'Goldsource' } czero = @{ Address = 'cs.startersclan.com' Port = 27615 Engine = 'Goldsource' } valve = @{ Address = 'hl.startersclan.com' Port = 27915 Engine = 'Goldsource' } } It 'Gets info' { $type = 'info' $ErrorActionPreference = 'Stop' . "$here\..\private\Resolve-DNS.ps1" foreach ($game in $gameservers.Keys) { "Testing $game" | Write-Host $params = $gameservers[$game] $result = SourceQuery @params -Type $type $result['Protocol'] | Should -BeOfType [int] $result['Name'] | Should -BeOfType [string] $result['Map'] | Should -BeOfType [string] $result['Folder'] | Should -BeOfType [string] $result['Game'] | Should -BeOfType [string] $result['ID'] | Should -BeOfType [int] $result['Players'] | Should -BeOfType [int] $result['Max_players'] | Should -BeOfType [int] $result['Bots'] | Should -BeOfType [int] $result['Server_type'] | Should -BeOfType [int] $result['Environment'] | Should -BeOfType [string] $result['Visibility'] | Should -BeOfType [string] $result['VAC'] | Should -BeOfType [string] $result['Version'] | Should -BeOfType [string] $result['Port'] | Should -BeOfType [int] $result | Should -BeOfType [System.Collections.Specialized.OrderedDictionary] } } It 'Gets players' { $type = 'players' $ErrorActionPreference = 'Stop' . "$here\..\private\Resolve-DNS.ps1" foreach ($game in $gameservers.Keys) { "Testing $game" | Write-Host $params = $gameservers[$game] $result = SourceQuery @params -Type $type $result.Players_count | Should -BeOfType [int] ,$result.Players | Should -BeOfType [System.Collections.ArrayList] $result | Should -BeOfType [System.Collections.Specialized.OrderedDictionary] } } It 'Gets rules' { $type = 'rules' $ErrorActionPreference = 'Stop' . "$here\..\private\Resolve-DNS.ps1" foreach ($game in $gameservers.Keys) { "Testing $game" | Write-Host $params = $gameservers[$game] $result = SourceQuery @params -Type $type $result.Rules_count | Should -BeOfType [int] ,$result.Rules | Should -BeOfType [System.Collections.ArrayList] $result | Should -BeOfType [System.Collections.Specialized.OrderedDictionary] } } # Deprecated # It 'Gets ping' { # $type = 'ping' # foreach ($game in $gameservers.Keys) { # "Testing $game" | Write-Host # $params = $gameservers[$game] # Write-Host "game: $game" # $result = SourceQuery @params -Type $type # $result | Should -Not -Be $null # } # } } } |