The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Test::More tests => 6;
use Time::Local;

BEGIN { use_ok 'Business::Hours' }

{
    my $hours = Business::Hours->new();
    isa_ok($hours, 'Business::Hours');
    ok !$hours->holidays, "no holidays by default";
    $hours->holidays('01-01', '05-01', '05-09');
    ok $hours->holidays, "set some holidays";

    {
        my $res = $hours->first_after( timelocal(59,59,23,31,12-1,2008) );
        my @res = localtime($res);
        $res[4]++; $res[5]+=1900;
        is_deeply([@res[3, 4, 5]], [2, 1, 2009], "skipped new year holiday");
    }

    {
        my $res = $hours->add_seconds( timelocal(00,00,15,31,12-1,2008), 8*60*60 );
        my @res = localtime($res);
        $res[4]++; $res[5]+=1900;
        is_deeply([@res[3, 4, 5]], [2, 1, 2009], "skipped new year holiday");
    }
}