tests/Set-FileTime.Tests.ps1
#requires -Module Pester Set-StrictMode -Version Latest Import-Module -Name '..\Aerie.FileUtility.psd1' -Force Describe "Set-FileTime" { InModuleScope "Aerie.FileUtility" { Context "CreationTime の変更" { It "CreationTime を変更する場合、その他の値は変更されない" { $file = New-Item 'TestDrive:\test1.txt' $lastWriteTime = $file.LastWriteTime $lastAccessTime = $file.LastAccessTime $file = Set-FileTime -Path $file -CreationTime '2018-02-03' -PassThru if ($IsWindows) { $file.CreationTime | Should -Be ([DateTime]'2018-02-03') } $file.LastWriteTime | Should -Be $lastWriteTime $file.LastAccessTime | Should -Be $lastAccessTime } } Context "LastWriteTime の変更" { It "LastWriteTime を変更する場合、その他の値は変更されない" { $file = New-Item 'TestDrive:\test1.txt' $creationTime = $file.CreationTime $lastAccessTime = $file.LastAccessTime $file = Set-FileTime -Path $file -LastWriteTime '2018-02-04' -PassThru if ($IsWindows) { $file.CreationTime | Should -Be $creationTime } $file.LastWriteTime | Should -Be ([DateTime]'2018-02-04') $file.LastAccessTime | Should -Be $lastAccessTime } } Context "LastAccessTime の変更" { It "LastAccessTime を変更する場合、その他の値は変更されない" { $file = New-Item 'TestDrive:\test1.txt' $creationTime = $file.CreationTime $lastWriteTime = $file.LastWriteTime $file = Set-FileTime -Path $file -LastAccessTime '2018-02-05' -PassThru if ($IsWindows) { $file.CreationTime | Should -Be $creationTime } $file.LastAccessTime | Should -Be ([DateTime]'2018-02-05') $file.LastWriteTime | Should -Be $lastWriteTime } } Context "パラメーター制約のテスト" { It "3つの時刻パラメーターを何も指定しない場合はエラー" { $file = New-Item 'TestDrive:\test1.txt' { Set-FileTime -Path $file } | Should -Throw } } } } |