1 package KohaTest::Dates::Usage;
2 use base qw( KohaTest::Dates );
9 use C4::Dates qw(format_date format_date_in_iso);
13 iso => [ '2001-01-01', '1989-09-21', '1952-01-00' ],
14 metric => [ "01-01-2001", '21-09-1989', '00-01-1952' ],
15 us => [ "01-01-2001", '09-21-1989', '01-00-1952' ],
16 sql => [ '20010101 010101', '19890921 143907', '19520100 000000' ],
20 my @formats = sort keys %thash;
22 sub check_formats : Test( 10 ) {
25 my $syspref = C4::Dates->new->format();
26 ok( $syspref, "Your system preference is: $syspref" );
28 foreach ( @{ $thash{'iso'} } ) {
29 ok( format_date($_), "able to format_date() on $_" );
32 foreach ( @{ $thash{$syspref} } ) {
33 ok( format_date_in_iso($_), "able to format_date_in_iso() on $_" );
35 ok( C4::Dates->today(), "(default) CLASS ->today : " . C4::Dates->today() );
38 sub defaults : Test( 24 ) {
42 my $pre = sprintf '(%-6s)', $_;
43 my $date = C4::Dates->new();
44 ok( $date, "$pre Date Creation : new()" );
45 isa_ok( $date, 'C4::Dates' );
46 ok( $_ eq $date->format($_), "$pre format($_) : " );
47 ok( $date->visual(), "$pre visual()" );
48 ok( $date->output(), "$pre output()" );
49 ok( $date->today(), "$pre object->today" );
54 sub valid_inputs : Test( 108 ) {
57 foreach my $format (@formats) {
58 my $pre = sprintf '(%-6s)', $format;
59 foreach my $testval ( @{ $thash{$format} } ) {
61 my $date = C4::Dates->new( $testval, $format );
62 ok( $date, "$pre Date Creation : new('$testval','$format')" );
63 isa_ok( $date, 'C4::Dates' );
64 ok( $date->regexp, "$pre has regexp()" );
65 ok( $val = $date->output(), describe( "$pre output()", $val ) );
66 foreach ( grep { !/$format/ } @formats ) {
67 ok( $today = $date->output($_), describe( sprintf( "$pre output(%8s)", "'$_'" ), $today ) );
69 ok( $today = $date->today(), describe( "$pre object->today", $today ) );
70 ok( $val = $date->output(), describe( "$pre output()", $val ) );
75 sub independence_from_class : Test( 1 ) {
78 my $in1 = '12/25/1952'; # us
79 my $in2 = '13/01/2001'; # metric
80 my $d1 = C4::Dates->new( $in1, 'us' );
81 my $d2 = C4::Dates->new( $in2, 'metric' );
82 my $out1 = $d1->output('iso');
83 my $out2 = $d2->output('iso');
84 ok( $out1 ne $out2, "subsequent constructors get different dataspace ($out1 != $out2)" );
91 my $front = sprintf( "%-25s", shift );
92 my $tail = shift || 'FAILED';
93 return "$front : $tail";