Functions/Write-OutputMessage.Tests.ps1
describe "BitTitan.Runbooks.Common/Write-OutputMessage" -Tag "module", "unit" { # Import the function to test . "$($PSScriptRoot)\Write-OutputMessage.ps1" # Declare mocks mock Write-Information {} mock Write-Warning {} mock Write-Error {} it "writes a string to information" { # Call the function $output = Write-OutputMessage "message" -ToInformation -AppendNewLines 0 # Verify mocks Assert-MockCalled Write-Information -Times 1 -Exactly -ParameterFilter { $MessageData -eq "message" } -Scope it Assert-MockCalled Write-Warning -Times 0 -Exactly -Scope it Assert-MockCalled Write-Error -Times 0 -Exactly -Scope it # Verify output $output | Should Be "message" } it "writes a string to the information stream" { # Call the function $output = Write-OutputMessage "message" -OutputStream "Information" -AppendNewLines 0 # Verify mocks Assert-MockCalled Write-Information -Times 1 -Exactly -ParameterFilter { $MessageData -eq "message" } -Scope it Assert-MockCalled Write-Warning -Times 0 -Exactly -Scope it Assert-MockCalled Write-Error -Times 0 -Exactly -Scope it # Verify output $output | Should Be "message" } it "writes a string to warning" { # Call the function $output = Write-OutputMessage "message" -ToWarning -AppendNewLines 0 # Verify mocks Assert-MockCalled Write-Information -Times 0 -Exactly -Scope it Assert-MockCalled Write-Warning -Times 1 -Exactly -ParameterFilter { $Message -eq "message" } -Scope it Assert-MockCalled Write-Error -Times 0 -Exactly -Scope it # Verify output $output | Should Be "message" } it "writes a string to the warning stream" { # Call the function $output = Write-OutputMessage "message" -OutputStream "Warning" -AppendNewLines 0 # Verify mocks Assert-MockCalled Write-Information -Times 0 -Exactly -Scope it Assert-MockCalled Write-Warning -Times 1 -Exactly -ParameterFilter { $Message -eq "message" } -Scope it Assert-MockCalled Write-Error -Times 0 -Exactly -Scope it # Verify output $output | Should Be "message" } it "writes a string to error" { # Call the function $output = Write-OutputMessage "message" -ToError -AppendNewLines 0 # Verify mocks Assert-MockCalled Write-Information -Times 0 -Exactly -Scope it Assert-MockCalled Write-Warning -Times 0 -Exactly -Scope it Assert-MockCalled Write-Error -Times 1 -Exactly -ParameterFilter { $Message -eq "message" } -Scope it # Verify output $output | Should Be "message" } it "writes a string to the error stream" { # Call the function $output = Write-OutputMessage "message" -OutputStream "Error" -AppendNewLines 0 # Verify mocks Assert-MockCalled Write-Information -Times 0 -Exactly -Scope it Assert-MockCalled Write-Warning -Times 0 -Exactly -Scope it Assert-MockCalled Write-Error -Times 1 -Exactly -ParameterFilter { $Message -eq "message" } -Scope it # Verify output $output | Should Be "message" } it "appends newlines to the string before returning" { # Call the function $output = Write-OutputMessage "message" -AppendNewLines 3 -ToInformation # Verify output $output | Should Be "message`r`n`r`n`r`n" } } |