. $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 = "" Describe "ConvertTo-SafeTeamCityMessage" { Context "When Provided With Non-Newline Characters" { It "Should Properly Sanitize |" { $testString = "I have a | pipe" $resultString = ConvertTo-SafeTeamCityMessage $testString $resultString | Should -Match "\|\|" } It "Should Properly Sanitize '" { $testString = "I have an ' apostrophe" $resultString = ConvertTo-SafeTeamCityMessage $testString $resultString | Should -Match "`|'" } It "Should Properly Sanitize ’" { $testString = "I have a *fancy* ’ apostrophe" $resultString = ConvertTo-SafeTeamCityMessage $testString $resultString | Should -Match "`|’" } It "Should Properly Sanitize [" { $testString = "I have a left [ bracket" $resultString = ConvertTo-SafeTeamCityMessage $testString # Powershell wants the ` for the |, regex wants the \ for the [... Rage. $resultString | Should -Match "`|\[" } It "Should Properly Sanitize ]" { $testString = "I have a right ] bracket" $resultString = ConvertTo-SafeTeamCityMessage $testString $resultString | Should -Match "`|]" } } Context "When Provided With a Newline Charater" { It "Should Properly Sanitize ``n" { $testString = "I have an end line" $resultString = ConvertTo-SafeTeamCityMessage $testString $resultString | Should -Match "`\|n" } } Context "When Provided With a Character Return Character" { It "Should Properly Sanitize ``r" { $testString = "I have a character `r return" $resultString = ConvertTo-SafeTeamCityMessage $testString $resultString | Should -Match "`\|r" } } Context "When Provided With a String Which Doesn't Need Any Modification" { It "Should Make No Changes" { $testString = "I am a string with no special characters." $resultString = ConvertTo-SafeTeamCityMessage $testString $resultString | Should -eq $testString } } Context "When Provided With an empty string" { It "Should Return an Empty string" { $testString = "" $resultString = ConvertTo-SafeTeamCityMessage $testString $resultString | Should -eq $testString } } }