Functions/New-Fixture.Tests.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
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 } |