Tests/Test-CharsInPath.Tests.ps1
<#
.SYNOPSIS Pester tests for function Test-CharsInPath .LINK https://github.com/it-praktyk/New-OutputObject .LINK https://www.linkedin.com/in/sciesinskiwojciech .NOTES AUTHOR: Wojciech Sciesinski, wojciech[at]sciesinski[dot]net KEYWORDS: PowerShell, FileSystem, Pester CURRENT VERSION - 0.5.0 - 2016-11-11 HISTORY OF VERSIONS https://github.com/it-praktyk/New-OutputObject/VERSIONS.md #> $here = Split-Path -Parent $MyInvocation.MyCommand.Path $sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.' . "$here\..\Private\$sut" [Bool]$VerboseFunctionOutput = $false Describe "Test-CharsInPath" { Context "Input is a file or a directory PSObject" { $TestFile = New-Item -Path "TestDrive:" -Name "TestFile1.txt" -ItemType File $TestDir = New-Item -Path "TestDrive:" -Name "TestDir1" -ItemType Container It "Input is a di rectory, SkipCheckCharsInFolderPart" { Test-CharsInPath -path $TestDir -SkipCheckCharsInFolderPart | Should Be 1 } It "Input is a file, SkipCheckCharsInFileNamePart" { Test-CharsInPath -path $TestFile -SkipCheckCharsInFileNamePart | Should Be 1 } } Context "Input is a string" { [String]$CorrectPathString = 'C:\Windows\Temp\Add-GroupsMember.ps1' [String]$InCorrectPathString = 'C:\Win>dows\Te%mp\Add-ADGroupMember.ps1' [String]$InCorrectFileNameString = 'C:\Windows\Temp\Ard-ADGrou|p<Member.ps1' [String]$IncorrectFullPathString = 'C:\Win>dows\Temp\Ard-ADGrou|p<Member.ps1' [String]$IncorrectDirectoryOnly = 'C:\AppData\Loc>al\' [String]$CorrectDirectoryOnly = 'C:\AppData\Local\' [String]$IncorrectFileNameOnly = 'Test-File-201606*08-1315.txt' [String]$CorrectFileNameOnly = 'Test-File-20160608-1315.txt' It "Input is string, CorrectPathString" { Test-CharsInPath -Path $CorrectPathString -verbose:$VerboseFunctionOutput | should be 0 } It "Input is string, SkipCheckCharsInFolderPart, CorrectPathString" { Test-CharsInPath -Path $CorrectPathString -SkipCheckCharsInFolderPart -verbose:$VerboseFunctionOutput | should be 0 } It "Input is string, SkipCheckCharsInFileNamePart, CorrectPathString" { Test-CharsInPath -Path $CorrectPathString -SkipCheckCharsInFileNamePart -verbose:$VerboseFunctionOutput | should be 0 } It "Input is string, SkipCheckCharsInFolderPart, IncorrectDirectoryOnly" { Test-CharsInPath -Path $IncorrectDirectoryOnly -SkipCheckCharsInFolderPart -verbose:$VerboseFunctionOutput | should be 1 } It "Input is string, IncorrectDirectoryOnly" { Test-CharsInPath -Path $IncorrectDirectoryOnly -verbose:$VerboseFunctionOutput | should be 2 } It "Input is string, CorrectDirectoryOnly only" { Test-CharsInPath -Path $CorrectDirectoryOnly -verbose:$VerboseFunctionOutput | should be 0 } It "Input is string, SkipCheckCharsInFileNamePart, InCorrectFileNameString" { Test-CharsInPath -Path $InCorrectFileNameString -SkipCheckCharsInFileNamePart -verbose:$VerboseFunctionOutput | should be 0 } It "Input is string, InCorrectFileNameString" { Test-CharsInPath -Path $InCorrectFileNameString -verbose:$VerboseFunctionOutput | should be 3 } It "Input is string, SkipCheckCharsInFileNamePart, IncorrectFileNameOnly" { Test-CharsInPath -Path $IncorrectFileNameOnly -SkipCheckCharsInFileNamePart -verbose:$VerboseFunctionOutput | should be 1 } It "Input is string, IncorrectFileNameOnly only" { Test-CharsInPath -Path $IncorrectFileNameOnly -verbose:$VerboseFunctionOutput | should be 3 } It "Input is string, SkipCheckCharsInFileNamePart, CorrectFileNameOnly" { Test-CharsInPath -Path $CorrectFileNameOnly -SkipCheckCharsInFileNamePart -verbose:$VerboseFunctionOutput | should be 1 } It "Input is string, CorrectFileNameOnly only" { Test-CharsInPath -Path $CorrectFileNameOnly -verbose:$VerboseFunctionOutput | should be 0 } It "Input is string, SkipCheckCharsInFolderPart and SkipCheckCharsInFileNamePart, InCorrectPathString" { Test-CharsInPath -Path $CorrectPathString -SkipCheckCharsInFileNamePart -SkipCheckCharsInFolderPart -verbose:$VerboseFunctionOutput | should be 1 } } Context "Input is other than string or System.IO.X" { It "Input is Int32" { [Int]$PathToTest = 23 { Test-CharsInPath -Path $PathToTest -verbose:$VerboseFunctionOutput } | should Throw } } } |