Blame t/06_bad_formats.t

Packit 106d3f
#!/usr/bin/perl
Packit 106d3f
Packit 106d3f
# Copyright (C) 2003-2012  Joshua Hoblitt
Packit 106d3f
Packit 106d3f
use strict;
Packit 106d3f
use warnings;
Packit 106d3f
Packit 106d3f
use lib qw( ./lib );
Packit 106d3f
Packit 106d3f
use Test::More tests => 4;
Packit 106d3f
Packit 106d3f
use DateTime::Format::ISO8601;
Packit 106d3f
Packit 106d3f
# parse_datetime
Packit 106d3f
my $base_year = 2000;
Packit 106d3f
my $base_month = "01";
Packit 106d3f
my $iso8601 = DateTime::Format::ISO8601->new(
Packit 106d3f
    base_datetime => DateTime->new( year => $base_year, month => $base_month ),
Packit 106d3f
);
Packit 106d3f
Packit 106d3f
# examples from https://rt.cpan.org/Ticket/Update.html?id=5264
Packit 106d3f
Packit 106d3f
#Section 4.2.5.1 says "Expressions of the difference between local time and UTC
Packit 106d3f
#of day are a component in the representations defined in 4.2.5.2; they shall
Packit 106d3f
#not be used as self-standing expressions.".  Which means the UTC offset is
Packit 106d3f
#considered part of the time format so you get to use the extended formation
Packit 106d3f
#(the ':') or not but you can't mix and match the two.
Packit 106d3f
Packit 106d3f
eval {
Packit 106d3f
    my $dt = $iso8601->parse_datetime( '2009-12-10T09:00:00.00+0100' );
Packit 106d3f
};
Packit 106d3f
like( $@, qr/Invalid date format/ );
Packit 106d3f
Packit 106d3f
eval {
Packit 106d3f
    my $dt = $iso8601->parse_datetime( '2011-07-04T20:50:23+0200' );
Packit 106d3f
};
Packit 106d3f
like( $@, qr/Invalid date format/ );
Packit 106d3f
Packit 106d3f
# more "colon or not" coverage
Packit 106d3f
eval {
Packit 106d3f
    my $dt = $iso8601->parse_datetime( '20091210T090000.00+01:00' );
Packit 106d3f
};
Packit 106d3f
like( $@, qr/Invalid date format/ );
Packit 106d3f
Packit 106d3f
eval {
Packit 106d3f
    my $dt = $iso8601->parse_datetime( '20110704T205023+02:00' );
Packit 106d3f
};
Packit 106d3f
like( $@, qr/Invalid date format/ );