mirror of https://github.com/raandree/NTFSSecurity
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.7 KiB
44 lines
1.7 KiB
<#
|
|
Tests the link cmdlets of the module built in NTFSSecurity\bin\Release in a sandbox folder.
|
|
#>
|
|
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
|
|
'PSUseDeclaredVarsMoreThanAssignments', '', Justification = 'Pester shares variables between blocks.'
|
|
)]
|
|
param ()
|
|
|
|
BeforeAll {
|
|
Import-Module -Name (Join-Path -Path $PSScriptRoot -ChildPath 'TestHelpers.psm1') -Force
|
|
$modulePath = Join-Path -Path $PSScriptRoot -ChildPath '..\NTFSSecurity\bin\Release\NTFSSecurity.psd1'
|
|
Import-Module -Name $modulePath -Force -ErrorAction Stop
|
|
$sandbox = New-TestSandbox -Name 'Links'
|
|
Push-Location -LiteralPath $sandbox
|
|
}
|
|
|
|
AfterAll {
|
|
Pop-Location
|
|
Remove-TestSandbox -Sandbox $sandbox
|
|
Remove-Module -Name NTFSSecurity -Force -ErrorAction SilentlyContinue
|
|
}
|
|
|
|
Describe 'New-NTFSHardLink' {
|
|
It 'Should create a hard link to a file' {
|
|
$target = New-TestSandboxItem -Sandbox $sandbox -Name 'Target'
|
|
$link = Join-Path -Path $sandbox -ChildPath 'Link.txt'
|
|
Assert-TestSandboxPath -Sandbox $sandbox -Path $link
|
|
|
|
New-NTFSHardLink -Path $link -Target $target -ErrorAction Stop
|
|
|
|
$link | Should -Exist
|
|
Get-Content -LiteralPath $link | Should -Be (Get-Content -LiteralPath $target)
|
|
}
|
|
|
|
# Before 5.0.0, the error said "The target path exist" for a target that did not exist.
|
|
It 'Should report that a missing target does not exist' {
|
|
$missing = Join-Path -Path $sandbox -ChildPath 'Missing.txt'
|
|
$link = Join-Path -Path $sandbox -ChildPath 'MissingLink.txt'
|
|
Assert-TestSandboxPath -Sandbox $sandbox -Path $missing, $link
|
|
|
|
{ New-NTFSHardLink -Path $link -Target $missing -ErrorAction Stop } | Should -Throw -ExpectedMessage '*does not exist*'
|
|
$link | Should -Not -Exist
|
|
}
|
|
}
|
|
|