App-TimeTracker

 view release on metacpan or  search on metacpan

t/TimeTracker/datetime_coerce.t  view on Meta::CPAN

use 5.010;
use strict;
use warnings;
use lib 't';

use Test::Most;
use App::TimeTracker;
use testlib::Fixtures;
my $tmp = testlib::Fixtures::setup_tempdir;

package ThisTest;
use Moose;
extends 'App::TimeTracker';
has 'dt' => (
    isa    => 'TT::DateTime',
    is     => 'ro',
    coerce => 1,
);

package main;

local $ENV{TZ} = 'UTC';

my $now = DateTime->now;
$now->set_time_zone('local');
my $date = DateTime->new( year => 2012, month => 2, day => 26, time_zone => 'UTC' );

foreach my $test (
    [ '12:34',            $now->clone->set( hour => 12, minute => 34, second => 0 ) ],
    [ '0:1',              $now->clone->set( hour => 0,  minute => 1,  second => 0 ) ],
    [ '2012-02-26',       $date->clone ],
    [ '2012-02-26 12:34', $date->clone->set( hour => 12, minute => 34, second => 0 ) ],

    # for our crazy American friends...
    [ '26-02-2012',       $date->clone ],
    [ '26-02-2012 12:34', $date->clone->set( hour => 12, minute => 34, second => 0 ) ],
) {
    my $tt = ThisTest->new( dt => $test->[0], home => $tmp, config => {} );
    is( $tt->dt->iso8601, $test->[1]->iso8601, join( ' -> ', @$test ) );
}

done_testing();



( run in 0.750 second using v1.01-cache-2.11-cpan-39bf76dae61 )