Functions/TestDrive.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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
Set-StrictMode -Version Latest $tempPath = (Get-Item $env:temp).FullName Describe "Setup" { It "returns a location that is in a temp area" { $testDrivePath = (Get-Item $TestDrive).FullName $testDrivePath -like "$tempPath*" | Should Be $true } It "creates a drive location called TestDrive:" { "TestDrive:\" | Should Exist } } Describe "TestDrive" { It "handles creation of a drive with . characters in the path" { #TODO: currently untested but requirement needs to be here "preventing this from failing" } } Describe "Create filesystem with directories" { Setup -Dir "dir1" Setup -Dir "dir2" It "creates directory when called with no file content" { "TestDrive:\dir1" | Should Exist } It "creates another directory when called with no file content and doesnt remove first directory" { $result = Test-Path "TestDrive:\dir2" $result = $result -and (Test-Path "TestDrive:\dir1") $result | Should Be $true } } Describe "Create nested directory structure" { Setup -Dir "parent/child" It "creates parent directory" { "TestDrive:\parent" | Should Exist } It "creates child directory underneath parent" { "TestDrive:\parent\child" | Should Exist } } Describe "Create a file with no content" { Setup -File "file" It "creates file" { "TestDrive:\file" | Should Exist } It "also has no content" { Get-Content "TestDrive:\file" | Should BeNullOrEmpty } } Describe "Create a file with content" { Setup -File "file" "file contents" It "creates file" { "TestDrive:\file" | Should Exist } It "adds content to the file" { Get-Content "TestDrive:\file" | Should Be "file contents" } } Describe "Create file with passthru" { $thefile = Setup -File "thefile" -PassThru It "returns the file from the temp location" { $thefile.FullName -like "$tempPath*" | Should Be $true $thefile.Exists | Should Be $true } } Describe "Create directory with passthru" { $thedir = Setup -Dir "thedir" -PassThru It "returns the directory from the temp location" { $thedir.FullName -like "$tempPath*" | Should Be $true $thedir.Exists | Should Be $true } } Describe "TestDrive scoping" { $describe = Setup -File 'Describe' -PassThru Context "Describe file is available in context" { It "Finds the file" { $describe | Should Exist } #create file for the next test Setup -File 'Context' It "Creates It-scoped contents" { Setup -File 'It' 'TestDrive:\It' | Should Exist } It "Does not clear It-scoped contents on exit" { 'TestDrive:\It' | Should Exist } } It "Context file are removed when returning to Describe" { "TestDrive:\Context" | Should Not Exist } It "Describe file is still available in Describe" { $describe | Should Exist } } Describe "Cleanup" { Setup -Dir "foo" } Describe "Cleanup" { It "should have removed the temp folder from the previous fixture" { Test-Path "$TestDrive\foo" | Should Not Exist } It "should also remove the TestDrive:" { Test-Path "TestDrive:\foo" | Should Not Exist } } Describe "Cleanup when Remove-Item is mocked" { Mock Remove-Item {} Context "add a temp directory" { Setup -Dir "foo" } Context "next context" { It "should have removed the temp folder" { "$TestDrive\foo" | Should Not Exist } } } InModuleScope Pester { Describe "New-RandomTempDirectory" { It "creates randomly named directory" { $first = New-RandomTempDirectory $second = New-RandomTempDirectory $first | Remove-Item -Force $second | Remove-Item -Force $first.name | Should Not Be $second.name } } } |