|
Packit Service |
f95697 |
use warnings;
|
|
Packit Service |
f95697 |
use strict;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
use IO::File 1.13;
|
|
Packit Service |
f95697 |
use Test::More tests => 36;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
require_ok "DateTime::TimeZone::Tzfile";
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
my $tz;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
sub new_fh() {
|
|
Packit Service |
f95697 |
my $fh;
|
|
Packit Service |
f95697 |
($fh = IO::File->new("t/London.tz")) && $fh->binmode or die $!;
|
|
Packit Service |
f95697 |
return $fh;
|
|
Packit Service |
f95697 |
}
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
$tz = DateTime::TimeZone::Tzfile->new("t/London.tz");
|
|
Packit Service |
f95697 |
ok $tz;
|
|
Packit Service |
f95697 |
is $tz->name, "t/London.tz";
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
$tz = DateTime::TimeZone::Tzfile->new(filename => "t/London.tz");
|
|
Packit Service |
f95697 |
ok $tz;
|
|
Packit Service |
f95697 |
is $tz->name, "t/London.tz";
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
$tz = DateTime::TimeZone::Tzfile->new(filename => "t/London.tz",
|
|
Packit Service |
f95697 |
name => "foobar");
|
|
Packit Service |
f95697 |
ok $tz;
|
|
Packit Service |
f95697 |
is $tz->name, "foobar";
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
$tz = DateTime::TimeZone::Tzfile->new(name => "foobar",
|
|
Packit Service |
f95697 |
filename => "t/London.tz");
|
|
Packit Service |
f95697 |
ok $tz;
|
|
Packit Service |
f95697 |
is $tz->name, "foobar";
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
my $fh = new_fh();
|
|
Packit Service |
f95697 |
$tz = DateTime::TimeZone::Tzfile->new(name => "foobar", filehandle => $fh);
|
|
Packit Service |
f95697 |
ok $tz;
|
|
Packit Service |
f95697 |
is $tz->name, "foobar";
|
|
Packit Service |
f95697 |
ok $fh->eof;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
$fh = new_fh();
|
|
Packit Service |
f95697 |
{ local $/ = \1; defined $fh->getline or die "read error: $!"; }
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(name => "foobar", filehandle => $fh); };
|
|
Packit Service |
f95697 |
like $@, qr/\Abad tzfile: wrong magic number\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(); };
|
|
Packit Service |
f95697 |
like $@, qr/\Afile not specified\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(name => "foobar"); };
|
|
Packit Service |
f95697 |
like $@, qr/\Afile not specified\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(quux => "foobar"); };
|
|
Packit Service |
f95697 |
like $@, qr/\Aunrecognised attribute\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(name => "foobar", name => "quux"); };
|
|
Packit Service |
f95697 |
like $@, qr/\Atimezone name specified redundantly\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval {
|
|
Packit Service |
f95697 |
DateTime::TimeZone::Tzfile->new(category => "foobar",
|
|
Packit Service |
f95697 |
category => "quux");
|
|
Packit Service |
f95697 |
};
|
|
Packit Service |
f95697 |
like $@, qr/\Acategory value specified redundantly\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(is_olson => 1, is_olson => 1); };
|
|
Packit Service |
f95697 |
like $@, qr/\Ais_olson flag specified redundantly\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(filehandle => new_fh()); };
|
|
Packit Service |
f95697 |
like $@, qr/\Atimezone name not specified\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval {
|
|
Packit Service |
f95697 |
DateTime::TimeZone::Tzfile->new(filename => "t/London.tz",
|
|
Packit Service |
f95697 |
filename => "t/London.tz");
|
|
Packit Service |
f95697 |
};
|
|
Packit Service |
f95697 |
like $@, qr/\Afilename specified redundantly\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval {
|
|
Packit Service |
f95697 |
DateTime::TimeZone::Tzfile->new(filehandle => new_fh(),
|
|
Packit Service |
f95697 |
filename => "t/London.tz");
|
|
Packit Service |
f95697 |
};
|
|
Packit Service |
f95697 |
like $@, qr/\Afilename specified redundantly\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval {
|
|
Packit Service |
f95697 |
DateTime::TimeZone::Tzfile->new(filename => "t/London.tz",
|
|
Packit Service |
f95697 |
filehandle => new_fh());
|
|
Packit Service |
f95697 |
};
|
|
Packit Service |
f95697 |
like $@, qr/\Afilehandle specified redundantly\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval {
|
|
Packit Service |
f95697 |
DateTime::TimeZone::Tzfile->new(filehandle => new_fh(),
|
|
Packit Service |
f95697 |
filehandle => new_fh());
|
|
Packit Service |
f95697 |
};
|
|
Packit Service |
f95697 |
like $@, qr/\Afilehandle specified redundantly\b/;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
foreach(
|
|
Packit Service |
f95697 |
undef,
|
|
Packit Service |
f95697 |
[],
|
|
Packit Service |
f95697 |
*STDOUT,
|
|
Packit Service |
f95697 |
bless({}),
|
|
Packit Service |
f95697 |
) {
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(name => $_) };
|
|
Packit Service |
f95697 |
like $@, qr/\Atimezone name must be a string\b/;
|
|
Packit Service |
f95697 |
if(defined $_) {
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(category => $_) };
|
|
Packit Service |
f95697 |
like $@, qr/\Acategory value must be a string or undef\b/;
|
|
Packit Service |
f95697 |
}
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(filename => $_) };
|
|
Packit Service |
f95697 |
like $@, qr/\Afilename must be a string\b/;
|
|
Packit Service |
f95697 |
}
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
eval { DateTime::TimeZone::Tzfile->new(filename => "t/notexist.tz"); };
|
|
Packit Service |
f95697 |
like $@, qr#\Acan't read t/notexist\.tz: #;
|
|
Packit Service |
f95697 |
|
|
Packit Service |
f95697 |
1;
|