File: MockTime.t

package info (click to toggle)
libtest-mocktime-datecalc-perl 5+ds-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, stretch, wheezy
  • size: 220 kB
  • ctags: 50
  • sloc: perl: 1,073; sh: 48; makefile: 7
file content (92 lines) | stat: -rwxr-xr-x 2,614 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/usr/bin/perl -w

# Copyright 2009, 2010 Kevin Ryde

# This file is part of Test-MockTime-DateCalc.
#
# Test-MockTime-DateCalc is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as published
# by the Free Software Foundation; either version 3, or (at your option) any
# later version.
#
# Test-MockTime-DateCalc is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with Test-MockTime-DateCalc.  If not, see <http://www.gnu.org/licenses/>.

use strict;
use warnings;
use Test::More;

use lib 't';
use MyTestHelpers;
BEGIN { MyTestHelpers::nowarnings() }

BEGIN {
  if (! eval { require Test::MockTime }) {
    plan skip_all => "due to Test::MockTime not available -- $@";
  }
  plan tests => 7;
}

use Test::MockTime::DateCalc;
use Date::Calc;


my $fake_str = "10 Jan 1990 12:30:00 GMT";
diag $fake_str;
#                                      S  M  H   D M Y
require Time::Local;
my $fake_time_t = Time::Local::timegm (0,30,12, 10,0,90);
Test::MockTime::set_fixed_time ($fake_time_t);
sleep 2;
diag "gmtime($fake_time_t) is ", join(' ',gmtime($fake_time_t));

{
  my $func = 'System_Clock';
  my @got = Date::Calc::System_Clock(1);
  diag "$func ", join(' ',@got);
  is_deeply (\@got, [1990,1,10, 12,30,0, 10,3,0], "$fake_str - $func");
}
{
  my $func = 'Today';
  is_deeply ([Date::Calc::Today(1)], [1990,1,10], "$fake_str - $func");
}
{
  my $func = 'Now';
  is_deeply ([Date::Calc::Now(1)], [12,30,0], "$fake_str - $func");
}
{
  my $func = 'Today_and_Now';
  is_deeply ([Date::Calc::Today_and_Now(1)],
             [1990,1,10, 12,30,0], "$fake_str - $func");
}
{
  my $func = 'This_Year';
  is_deeply ([Date::Calc::This_Year(1)], [1990], "$fake_str - $func");
}
{
  my $func = 'Gmtime';
  is_deeply ([Date::Calc::Gmtime()],
             [1990,1,10, 12,30,0, 10,3,0], "$fake_str - $func");
}
{
  my $func = 'Localtime';
  # is_deeply ([Date::Calc::Localtime()], [1990,1,10, 12,30,0, 10,3,0], "$fake_str - $func");
}
{
  my $func = 'Timezone';
  # FIXME: not sure can reliably force a timezone to check this
  # is_deeply ([Date::Calc::Timezone()], [0,0,0, 1,0,0, 0], "$fake_str - Timezone");
}
{
  my $func = 'Time_to_Date';
  # FIXME: is this right for old MacOS, or is it local time?
  is_deeply ([Date::Calc::Time_to_Date()],
             [1990,1,10, 12,30,0], "$fake_str - $func");
}

exit 0;