Aufgaben-Python/courses/powershell/06_schleifen_und_pipeline_durchlaeufe/test_aufgabe.ps1

56 lines
2.3 KiB
PowerShell

# 🧪 Pester v5 Testsuite: PS 06 - Schleifen (foreach, while & Pipeline)
Describe "PS 06: Schleifen (foreach, while & Pipeline)" {
# TEST: Get-FilteredEvenSquares
It "Get-FilteredEvenSquares berechnet Quadrate nur für gerade Zahlen" {
$result = Get-FilteredEvenSquares -Numbers @(1, 2, 3, 4, 5, 6)
$result.Count | Should -Be 3
$result[0] | Should -Be 4 # 2^2
$result[1] | Should -Be 16 # 4^2
$result[2] | Should -Be 36 # 6^2
}
# TEST: Get-FilteredEvenSquares mit leerem Array
It "Get-FilteredEvenSquares liefert leeres Array bei leerer Eingabe" {
$result = Get-FilteredEvenSquares -Numbers @()
$result.Count | Should -Be 0
}
# TEST: Invoke-StreamingPipelineMetrics
It "Invoke-StreamingPipelineMetrics ermittelt Count, Summe und Durchschnitt" {
$metrics = Invoke-StreamingPipelineMetrics -DataStream @(10.0, 20.0, 30.0, 40.0)
$metrics.Count | Should -Be 4
$metrics.TotalSum | Should -Be 100.0
$metrics.Average | Should -Be 25.0
}
# TEST: Invoke-RetryOperation erfolgreich
It "Invoke-RetryOperation beendet bei Erfolg vorzeitig" {
$retry1 = Invoke-RetryOperation -MaxAttempts 5 -SuccessOnAttempt 2
$retry1.Attempts | Should -Be 2
$retry1.IsSuccess | Should -Be $true
}
# TEST: Invoke-RetryOperation fehlgeschlagen
It "Invoke-RetryOperation stoppt bei Erreichen des Maximums" {
$retry2 = Invoke-RetryOperation -MaxAttempts 3 -SuccessOnAttempt 99
$retry2.Attempts | Should -Be 3
$retry2.IsSuccess | Should -Be $false
}
# TEST: Find-FirstMatchingServer
It "Find-FirstMatchingServer findet den ersten passenden Server und bricht ab" {
$servers = @("srv-web01", "srv-app01", "srv-db01", "srv-db02")
$found = Find-FirstMatchingServer -Servers $servers -Prefix "srv-db"
$found | Should -Be "srv-db01"
}
# TEST: Find-FirstMatchingServer ohne Treffer
It "Find-FirstMatchingServer liefert Null wenn kein Server passt" {
$servers = @("srv-web01", "srv-app01")
$found = Find-FirstMatchingServer -Servers $servers -Prefix "srv-cloud"
$found | Should -BeNullOrEmpty
}
}
Write-Host "✅ Alle Tests in PS 06 erfolgreich bestanden!" -ForegroundColor Green