diff --git a/test/powershell/Get-Date.Tests.ps1 b/test/powershell/Get-Date.Tests.ps1 index 16f3a98a3ff..7b643de09a6 100644 --- a/test/powershell/Get-Date.Tests.ps1 +++ b/test/powershell/Get-Date.Tests.ps1 @@ -1,3 +1,86 @@ +Describe "Get-Date DRT Unit Tests" -Tags DRT { + It "Get-Date with all parameters returns proper results" { + $date = [datetime]::Now + ([timespan]::new(0,0,30)) + $result = Get-Date -Date $date -Year 1973 -Month 2 -Day 22 -Hour 15 -Minute 40 -Second 10 -Millisecond 200 + $result.GetType() | Should be ([Datetime]) + $result.Year | Should be 1973 + $result.Month| Should be 2 + $result.Day | Should be 22 + $result.Hour | Should be 15 + $result.Minute | Should be 40 + $result.Second | Should be 10 + $result.Millisecond | Should be 200 + } + + It "using -displayhint produces the correct output" { + $d = Get-date -Date:"Jan 1, 2020" -DisplayHint Date | Out-String + $d.Trim() | Should be "Wednesday, January 1, 2020" + } + + It "using -format produces the correct output" { + Get-date -Date:"Jan 1, 2020" -Format:"MMM-dd-yy" | Should be "Jan-01-20" + } + + It "using -uformat produces the correct output" { + Get-date -Date:"Jan 1, 2020" -UFormat:"%s" | Should be "1577836800" + } + + It "using -uformat 'ymdH' produces the correct output" { + Get-date -Date 0030-01-01T00:00:00 -uformat %y/%m/%d-%H | Should be "30/01/01-00" + } + + It "using -uformat 'aAbBcCdDehHIjmMpr' produces the correct output" { + Get-date -Date 1/1/0030 -uformat %a%A%b%B%c%C%d%D%e%h%H%I%j%m%M%p%r | Should be "TueTuesdayJanJanuaryTue Jan 1 00:00:00 003000101/01/30 1Jan001210100AM12:00:00 AM" + } + + It "using -uformat 'StTuUVwWxXyYZ' produces the correct output" { + Get-date -Date 1/1/0030 -uformat %S%T%u%U%V%w%W%x%X%y%Y%% | Should be "0000:00:002012001/01/3000:00:00300030%" + } + + It "Get-date works with pipeline input" { + $x = new-object System.Management.Automation.PSObject + $x | add-member NoteProperty Date ([DateTime]::Now) + $y = @($x,$x) + ($y | Get-date).Length | Should be 2 + } + + It "the LastWriteTime alias works with pipeline input" { + $folder = "GetDateTest" + #$tempPath = $TestDrive + $pathString = Join-Path -Path $TestDrive -ChildPath $folder + New-Item -Path $TestDrive -Name $folder -ItemType directory -Force + for($i = 0; $i -lt 10; $i++) + { + $temp = [guid]::NewGuid() + $pathString2 = Join-Path -Path $pathString -ChildPath $temp + New-Item -Path $pathString -Name $temp -ItemType file -Force + + for($j = 0; $j -lt 100; $j++) + { + Add-Content -Path $pathString2 -Value $j + } + + } + + $result1 = get-childitem -path $pathString | get-date + $result2 = get-childitem -path $pathString | get-date + + $result1.Length | Should be 10 + $result1.Length -eq $result2.Length | Should be $true + + for($i = 0; $i -lt $result1.Length; $i++) + { + $result1[$i] -eq $result2[$i] | Should be $true + } + + Get-ChildItem -Path $pathString | Remove-Item + Remove-Item -Path $pathString -Force -Recurse + } + + +} + + Describe "Get-Date" { It "Should return a DateTime object upon being called" { (Get-Date).GetType().Name.Equals('DateTime') | Should Be $true diff --git a/test/powershell/Start-Sleep.Tests.ps1 b/test/powershell/Start-Sleep.Tests.ps1 index b5136932abd..e97cfad808e 100644 --- a/test/powershell/Start-Sleep.Tests.ps1 +++ b/test/powershell/Start-Sleep.Tests.ps1 @@ -1,3 +1,22 @@ +Describe "Start-Sleep DRT Unit Tests" -Tags DRT{ + It "Should be works properly when sleeping with Second" { + $dtStart = [DateTime]::Now + Start-Sleep -Seconds 1 + $dtEnd = [DateTime]::Now + $millseconds = (New-TimeSpan -Start $dtStart -End $dtEnd).TotalMilliseconds + $millseconds | Should BeGreaterThan 1000 + } + + It "Should be works properly when sleeping with Milliseconds" { + $dtStart = [DateTime]::Now + Start-Sleep -Milliseconds 1000 + $dtEnd = [DateTime]::Now + $millseconds = (New-TimeSpan -Start $dtStart -End $dtEnd).TotalMilliseconds + $millseconds | Should BeGreaterThan 1000 + } + +} + Describe "Start-Sleep" { Context "Validate Start-Sleep works properly" {