File: quick.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 (49 lines) | stat: -rw-r--r-- 1,043 bytes parent folder | download | duplicates (3)
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
use strict;
use warnings;

use Test::More;

use DateTime::Format::Builder;

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

    eval q|
        package DTFB::Quick;

        use DateTime::Format::Builder (
        parsers => { parse_datetime => [
            { Quick => 'DateTime::Format::HTTP' },
            { Quick => 'DateTime::Format::Mail' },
            { Quick => 'DateTime::Format::IBeat' },
        ]});

        1;
    |;
    die $@ if $@;

    my $get = sub {
        eval {
            DTFB::Quick->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();