From 11afac883fd90ccbe1315ae41d8b4916a56f43bd Mon Sep 17 00:00:00 2001 From: TingLiu6 Date: Wed, 6 Apr 2016 01:14:14 -0700 Subject: [PATCH] Add Unit Test for GetDateTest.cs --- test/powershell/Get-Date.Tests.ps1 | 83 ++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/test/powershell/Get-Date.Tests.ps1 b/test/powershell/Get-Date.Tests.ps1 index 16f3a98a3f..584cd129d8 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" { + Get-date -Date:"Jan 1, 2020" -DisplayHint:$([Microsoft.PowerShell.Commands.DisplayHintType]::Date) | Out-String | Should be "`nWednesday, January 1, 2020`n`n`n" + } + + 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" { + #ToDo + Get-date -Date 1/1/0030 -uformat %S%T%u%U%V%w%W%x%X%y%Y%Z%% | Should be "0000:00:002012001/01/3000:00:00300030-07%" + } + + 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 = $PSScriptRoot + $pathString = Join-Path -Path $tempPath -ChildPath $folder + New-Item -Path $tempPath -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