1 |
dpavlin |
1.1 |
#!/usr/bin/perl |
2 |
|
|
|
3 |
dpavlin |
1.10 |
use Test::Simple tests => 16; |
4 |
dpavlin |
1.1 |
|
5 |
dpavlin |
1.3 |
use Time::Available qw(:days :fmt_interval); |
6 |
dpavlin |
1.9 |
use Time::Local; |
7 |
|
|
|
8 |
|
|
my $tz_offset = time()-timegm(localtime); |
9 |
dpavlin |
1.1 |
|
10 |
dpavlin |
1.4 |
my $i = Time::Available->new( start=>'07', end=>'17:15', dayMask=>DAY_WEEKDAY); |
11 |
dpavlin |
1.1 |
ok( defined($i) , 'new() work'); |
12 |
|
|
|
13 |
dpavlin |
1.9 |
ok( defined($i->{start_arr}) && |
14 |
|
|
$i->{start_arr}[0] == 0 && |
15 |
|
|
$i->{start_arr}[1] == 0 && |
16 |
|
|
$i->{start_arr}[2] == 7, |
17 |
|
|
'start time ok' ); |
18 |
|
|
ok( defined($i->{end_arr}) && |
19 |
|
|
$i->{end_arr}[0] == 0 && |
20 |
|
|
$i->{end_arr}[1] == 15 && |
21 |
|
|
$i->{end_arr}[2] == 17, |
22 |
|
|
'end time ok' ); |
23 |
dpavlin |
1.1 |
|
24 |
dpavlin |
1.2 |
my $t = 1 * 24; # 1d |
25 |
|
|
$t += 11; # 11 hr |
26 |
|
|
$t *= 60; |
27 |
|
|
$t += 11; # 11 min |
28 |
|
|
$t *= 60; |
29 |
|
|
$t += 11; # 11 sec |
30 |
|
|
|
31 |
dpavlin |
1.3 |
ok( fmt_interval($t) eq '1d 11:11:11', 'fmt_interval output ok'); |
32 |
dpavlin |
1.2 |
|
33 |
|
|
# 20000 = Thu Jan 1 06:33:20 1970 |
34 |
|
|
# 30000 = Thu Jan 1 09:20:00 1970 |
35 |
|
|
# 50000 = Thu Jan 1 14:53:20 1970 |
36 |
|
|
# 60000 = Thu Jan 1 17:40:00 1970 |
37 |
dpavlin |
1.3 |
|
38 |
|
|
# test this timespan (07:00-17:15) with above values |
39 |
|
|
|
40 |
dpavlin |
1.9 |
ok($i->uptime(20000)==36900,'ok'); |
41 |
|
|
ok($i->uptime(30000)==28500,'ok'); |
42 |
|
|
ok($i->uptime(50000)==8500,'ok'); |
43 |
|
|
ok($i->uptime(60000)==0,'ok'); |
44 |
dpavlin |
1.3 |
|
45 |
|
|
# create and test timespan which spans over midnight |
46 |
|
|
|
47 |
dpavlin |
1.4 |
$i = Time::Available->new( start=>'17:15', end=>'07:00', dayMask=>DAY_THURSDAY); |
48 |
dpavlin |
1.9 |
ok( defined($i->{start_arr}) && |
49 |
|
|
$i->{start_arr}[0] == 0 && |
50 |
|
|
$i->{start_arr}[1] == 15 && |
51 |
|
|
$i->{start_arr}[2] == 17, |
52 |
|
|
'end time ok' ); |
53 |
|
|
ok( defined($i->{end_arr}) && |
54 |
|
|
$i->{end_arr}[0] == 0 && |
55 |
|
|
$i->{end_arr}[1] == 0 && |
56 |
|
|
$i->{end_arr}[2] == 7, |
57 |
|
|
'start time ok' ); |
58 |
|
|
|
59 |
|
|
ok($i->uptime(20000)==29500,'ok'); |
60 |
|
|
ok($i->uptime(30000)==27900,'ok'); |
61 |
|
|
ok($i->uptime(50000)==27900,'ok'); |
62 |
|
|
ok($i->uptime(60000)==26400,'ok'); |
63 |
dpavlin |
1.3 |
|
64 |
dpavlin |
1.10 |
$i = Time::Available->new( start=>'00:00', end=>'23:59', dayMask=>DAY_SUNDAY, debug=>1); |
65 |
|
|
ok($i->_dayOk(0) == 1, 'ok'); |
66 |
|
|
$i = Time::Available->new( start=>'00:00', end=>'23:59', dayMask=>DAY_MONDAY, debug=>1); |
67 |
|
|
ok($i->_dayOk(1) == 1, 'ok'); |
68 |
|
|
|
69 |
|
|
# DAY_MONDAY |
70 |
|
|
# DAY_TUESDAY |
71 |
|
|
# DAY_WEDNESDAY |
72 |
|
|
# DAY_THURSDAY |
73 |
|
|
# DAY_FRIDAY |
74 |
|
|
# DAY_SATURDAY |