File: fall.t

package info (click to toggle)
libdatetime-format-builder-perl 0.8300-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 504 kB
  • sloc: perl: 1,236; makefile: 2
file content (52 lines) | stat: -rw-r--r-- 1,114 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
use strict;
use warnings;

use Test::More;

use DateTime::Format::Builder;

SKIP: {
    my @three = map {"DateTime::Format::$_"} qw( HTTP Mail IBeat );
    my @fails;
    for my $mod (@three) {
        eval "require $mod";
        push @fails, $mod if $@;
    }
    skip "@fails not installed.", 3 if @fails;

    eval qq|package DateTime::Format::Fall;|
        . join( "", map {"use $_;\n"} @three ) . q|
        use DateTime::Format::Builder (
        parsers => { parse_datetime => [
        |
        . join(
        "",
        map {qq|sub { eval { $_->parse_datetime( \$_[1] ) } },\n|} @three
        )
        . q|
        ]});

        1;
    |;

    die $@ if $@;

    my $get = sub {
        eval {
            DateTime::Format::Fall->parse_datetime( $_[0] )
                ->set_time_zone('UTC')->datetime;
        };
    };

    for ( '@d19.07.03 @704', '20030719T155345Z' ) {
        my $dt = $get->($_);
        is $dt, "2003-07-19T15:53:45", "Can parse [$_]";
    }

    for ('gibberish') {
        my $dt = $get->($_);
        ok( !defined $dt, "Shouldn't parse [$_]" );
    }
}

done_testing();