6 use Test::More tests => 14;
10 use_ok('Koha::Calendar');
12 # This was the only test C4 had
13 # Remove when no longer used
14 use_ok('C4::Calendar');
17 my $cal = Koha::Calendar->new( TEST_MODE => 1 );
19 isa_ok( $cal, 'Koha::Calendar' );
21 my $test_dt = DateTime->new( # Monday
27 time_zone => 'Europe/London',
30 my $later_dt = DateTime->new( # Monday
36 time_zone => 'Europe/London',
39 my $daycount = $cal->days_between( $test_dt, $later_dt );
40 cmp_ok( $daycount->in_units('days'),
41 '==', 48, 'days_between calculates correctly' );
43 my $ret = $cal->addDate( $test_dt, 1, 'days' );
45 cmp_ok( $ret->ymd(), 'eq', '2012-07-24', 'Simple Single Day Add (Calendar)`' );
47 $ret = $cal->addDate( $test_dt, 7, 'days' );
48 cmp_ok( $ret->ymd(), 'eq', '2012-07-31', 'Add 7 days Calendar mode' );
49 $cal->set_daysmode('Datedue');
50 $ret = $cal->addDate( $test_dt, 7, 'days' );
51 cmp_ok( $ret->ymd(), 'eq', '2012-07-30', 'Add 7 days Datedue mode' );
52 $cal->set_daysmode('Days');
53 $ret = $cal->addDate( $test_dt, 7, 'days' );
54 cmp_ok( $ret->ymd(), 'eq', '2012-07-30', 'Add 7 days Days mode' );
55 $cal->set_daysmode('Calendar');
57 # example tests for bug report
58 $cal->clear_weekly_closed_days();
60 $daycount = $cal->days_between( dt_from_string('2012-01-10'),
61 dt_from_string("2012-05-05") )->in_units('days');
62 cmp_ok( $daycount, '==', 116, 'test larger intervals' );
63 $daycount = $cal->days_between( dt_from_string("2012-01-01"),
64 dt_from_string("2012-05-05") )->in_units('days');
65 cmp_ok( $daycount, '==', 125, 'test positive intervals' );
66 my $daycount2 = $cal->days_between( dt_from_string("2012-05-05"),
67 dt_from_string("2012-01-01") )->in_units('days');
68 cmp_ok( $daycount2, '==', $daycount, 'test parameter order not relevant' );
69 $daycount = $cal->days_between( dt_from_string("2012-07-01"),
70 dt_from_string("2012-07-15") )->in_units('days');
71 cmp_ok( $daycount, '==', 14, 'days_between calculates correctly' );
72 $cal->add_holiday( dt_from_string('2012-07-06') );
73 $daycount = $cal->days_between( dt_from_string("2012-07-01"),
74 dt_from_string("2012-07-15") )->in_units('days');
75 cmp_ok( $daycount, '==', 13, 'holiday correctly recognized' );
77 $cal->add_holiday( dt_from_string('2012-07-07') );
78 $daycount = $cal->days_between( dt_from_string("2012-07-01"),
79 dt_from_string("2012-07-15") )->in_units('days');
80 cmp_ok( $daycount, '==', 12, 'multiple holidays correctly recognized' );