#!/usr/bin/perl use strict; use warnings; use Test::More tests => 13; use FindBin '$Bin'; use lib "$Bin/lib"; use Row::Test; my $test_data = 'Fred J Bloggs | 2009-03-17 | 02:03'; # 1 2 3 # 0123456789012345678901234567890123 # 0..3 # 5 # 7...12 # 16......25 # 29.33 my $obj = Row::Test->parse( $test_data ); my @fields = (qw/ first middle last date duration /); can_ok 'Row::Test', @fields; isa_ok $obj, 'Row::Test'; is $obj->first, 'Fred'; is $obj->middle, 'J'; is $obj->last, 'Bloggs'; isa_ok $obj->date, 'DateTime'; isa_ok $obj->duration, 'DateTime::Duration'; is $obj->date->day, 17, 'Day parsed ok'; is $obj->duration->in_units('minutes'), 123, 'Duration parsed ok'; is ''.$obj->date, '2009-03-17', 'Format date'; is ''.$obj->duration, '02:03', 'Format duration'; my $expected = $test_data; is $obj->output, $test_data, 'Round trip output (explicit picture)'; is ''.$obj, $test_data, '... with overloading';