__tests__/PSKit.GetDateRange.tests.ps1
Import-Module $PSScriptRoot/../PSKit.psd1 -Force Describe "PSKit tests - Get-DateRange" { BeforeAll { $script:fmt = 'yyyy-MM-dd' } It "Should return one date" { $actual = Get-DateRange $actual.count | should be 1 } It "Should return date run on" { $actual = Get-DateRange -periods 1 $actual.Count | Should be 1 $actual | should be (Get-Date).ToString($fmt) } It "Should return one date" { $date = '1/1/2020' $actual = Get-DateRange -start $date -periods 1 $actual.Count | Should be 1 $actual | should be (Get-Date $date).ToString($fmt) } It "Should return multiple dates" { $date = '1/1/2020' $actual = Get-DateRange $date -periods 6 $actual.Count | Should be 6 $actual[0] | should be (Get-Date $date).AddDays(0).ToString($fmt) $actual[1] | should be (Get-Date $date).AddDays(1).ToString($fmt) $actual[2] | should be (Get-Date $date).AddDays(2).ToString($fmt) $actual[3] | should be (Get-Date $date).AddDays(3).ToString($fmt) $actual[4] | should be (Get-Date $date).AddDays(4).ToString($fmt) $actual[5] | should be (Get-Date $date).AddDays(5).ToString($fmt) } It "Should return multiple dates, offset my month" { $date = '1/1/2020' $actual = Get-DateRange $date -periods 6 -freq M $actual.Count | Should be 6 $actual[0] | should be (Get-Date $date).AddMonths(0).ToString($fmt) $actual[1] | should be (Get-Date $date).AddMonths(1).ToString($fmt) $actual[2] | should be (Get-Date $date).AddMonths(2).ToString($fmt) $actual[3] | should be (Get-Date $date).AddMonths(3).ToString($fmt) $actual[4] | should be (Get-Date $date).AddMonths(4).ToString($fmt) $actual[5] | should be (Get-Date $date).AddMonths(5).ToString($fmt) } It "Should return multiple dates, offset my year" { $date = '1/1/2020' $actual = Get-DateRange $date -periods 6 -freq Y $actual.Count | Should be 6 $actual[0] | should be (Get-Date $date).AddYears(0).ToString($fmt) $actual[1] | should be (Get-Date $date).AddYears(1).ToString($fmt) $actual[2] | should be (Get-Date $date).AddYears(2).ToString($fmt) $actual[3] | should be (Get-Date $date).AddYears(3).ToString($fmt) $actual[4] | should be (Get-Date $date).AddYears(4).ToString($fmt) $actual[5] | should be (Get-Date $date).AddYears(5).ToString($fmt) } It "Should return multiple dates, based on end and freq is D" { $date = '1/1/2020' $end = '1/5/2020' $actual = Get-DateRange $date $end $actual.Count | should be 5 $actual[0] | should be (Get-Date $date).AddDays(0).ToString($fmt) $actual[1] | should be (Get-Date $date).AddDays(1).ToString($fmt) $actual[2] | should be (Get-Date $date).AddDays(2).ToString($fmt) $actual[3] | should be (Get-Date $date).AddDays(3).ToString($fmt) $actual[4] | should be (Get-Date $date).AddDays(4).ToString($fmt) } It "Should return multiple dates, based on end, respects period and freq is D" { $date = '1/1/2020' $end = '1/5/2020' $actual = Get-DateRange $date $end -periods 3 $actual.Count | should be 3 $actual[0] | should be (Get-Date $date).AddDays(0).ToString($fmt) $actual[1] | should be (Get-Date $date).AddDays(1).ToString($fmt) $actual[2] | should be (Get-Date $end).ToString($fmt) # $actual[3] | should be (Get-Date $date).AddDays(3).ToString($fmt) # $actual[4] | should be (Get-Date $date).AddDays(4).ToString($fmt) } It "Should return month intervals" { $date = '1/1/2020' $end = '1/5/2020' $periods = 3 $actual = Get-DateRange $date $end -periods $periods -freq M $actual.Count | should be 3 $actual[0] | should be (Get-Date $date).AddMonths(0).ToString($fmt) $actual[1] | should be (Get-Date $date).AddMonths(1).ToString($fmt) $actual[2] | should be '2020-05-01' } It "Should return one date" { $actual = @(Get-DateRange 1/1) $actual.Count | should be 1 $actual[0] | should be '2020-01-01' } } |