|
Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12 System : Windows NT SERVER-PC 10.0 build 26200 (Windows 11) AMD64 User : ServerPC ( 0) PHP Version : 8.2.12 Disable Function : NONE Directory : C:/Program Files (x86)/WindowsPowerShell/Modules/Pester/3.4.0/Functions/ |
Upload File : |
Set-StrictMode -Version Latest
Describe "New-Fixture" {
It "Name parameter is mandatory:" {
(get-command New-Fixture ).Parameters.Name.ParameterSets.__AllParameterSets.IsMandatory | Should Be $true
}
Context "Only Name parameter is specified:" {
It "Creates fixture in current directory:" {
$name = "Test-Fixture"
$path = "TestDrive:\"
pushd $path
New-Fixture -Name $name | Out-Null
popd
Join-Path -Path $path -ChildPath "$name.ps1" | Should Exist
Join-Path -Path $path -ChildPath "$name.Tests.ps1" | Should Exist
}
}
Context "Name and Path parameter is specified:" {
#use different fixture names to avoid interference among the test cases
#claning up would be also possible, but difficult if the assertion fails
It "Creates fixture in full Path:" {
$name = "Test-Fixture"
$path = "TestDrive:\full"
New-Fixture -Name $name -Path $path | Out-Null
Join-Path -Path $path -ChildPath "$name.ps1" | Should Exist
Join-Path -Path $path -ChildPath "$name.Tests.ps1" | Should Exist
#cleanup
Join-Path -Path "$path" -ChildPath "$name.ps1" | Remove-Item -Force
Join-Path -Path "$path" -ChildPath "$name.Tests.ps1" | Remove-Item -Force
}
It "Creates fixture in relative Path:" {
$name = "Relative1-Fixture"
$path = "TestDrive:\"
pushd $path
New-Fixture -Name $name -Path relative | Out-Null
popd
Join-Path -Path "$path\relative" -ChildPath "$name.ps1" | Should Exist
Join-Path -Path "$path\relative" -ChildPath "$name.Tests.ps1" | Should Exist
}
It "Creates fixture if Path is set to '.':" {
$name = "Relative2-Fixture"
$path = "TestDrive:\"
pushd $path
New-Fixture -Name $name -Path . | Out-Null
popd
Join-Path -Path "$path" -ChildPath "$name.ps1" | Should Exist
Join-Path -Path "$path" -ChildPath "$name.Tests.ps1" | Should Exist
}
It "Creates fixture if Path is set to '(pwd)':" {
$name = "Relative3-Fixture"
$path = "TestDrive:\"
pushd $path
New-Fixture -Name $name -Path (pwd) | Out-Null
popd
Join-Path -Path "$path" -ChildPath "$name.ps1" | Should Exist
Join-Path -Path "$path" -ChildPath "$name.Tests.ps1" | Should Exist
}
It "Writes warning if file exists" {
$name = "Warning-Fixture"
$path = "TestDrive:\"
Mock -Verifiable -ModuleName Pester Write-Warning { }
#Create the same files twice
New-Fixture -Name $name -Path $path | Out-Null
New-Fixture -Name $name -Path $path -WarningVariable warnings -WarningAction SilentlyContinue | Out-Null
Assert-VerifiableMocks
}
}
#TODO add tests that validate the contents of default files
}