Blame t/obj.t

Packit 95306a
#!/usr/bin/perl -w
Packit 95306a
Packit 95306a
use Test::Inter;
Packit 95306a
$t = new Test::Inter 'object';
Packit 95306a
$testdir = '';
Packit 95306a
$testdir = $t->testdir();
Packit 95306a
Packit 95306a
$ENV{'TZ'} = 'America/Chicago';
Packit 95306a
use Date::Manip;
Packit 95306a
Packit 95306a
use Cwd;
Packit 95306a
my $vers;
Packit 95306a
if ($ENV{'RELEASE_TESTING'}) {
Packit 95306a
   my $dir  = getcwd;
Packit 95306a
   $dir     =~ /Date-Manip-([0-9.]+)/;
Packit 95306a
   $vers = $1;
Packit 95306a
} else {
Packit 95306a
   # We'll only test the directory/version on my machine.
Packit 95306a
   # In some instances elsewhere, the install directory in renamed
Packit 95306a
   # unpredicatbly, so we won't do this test there.
Packit 95306a
   $vers = DateManipVersion();
Packit 95306a
}
Packit 95306a
Packit 95306a
if ($vers >= 6.00) {
Packit 95306a
   $t->feature("DM6",1);
Packit 95306a
}
Packit 95306a
Packit 95306a
$t->skip_all('Date::Manip 6.xx required','DM6');
Packit 95306a
Packit 95306a
%obj = ();
Packit 95306a
%dmb = ();
Packit 95306a
%dmt = ();
Packit 95306a
Packit 95306a
sub test {
Packit 95306a
  ($label,$op,@args)=@_;
Packit 95306a
  my $new;
Packit 95306a
Packit 95306a
  if ($op eq 'new') {
Packit 95306a
     my($type,@a) = @args;
Packit 95306a
     if (@a  &&  exists $obj{$a[0]}) {
Packit 95306a
        my $o = $obj{$a[0]};
Packit 95306a
        shift(@a);
Packit 95306a
        unshift(@a,$o);
Packit 95306a
     }
Packit 95306a
     if      ($type eq 'Base') {
Packit 95306a
        $new = new Date::Manip::Base @a;
Packit 95306a
     } elsif ($type eq 'TZ') {
Packit 95306a
        $new = new Date::Manip::TZ @a;
Packit 95306a
     } elsif ($type eq 'Date') {
Packit 95306a
        $new = new Date::Manip::Date @a;
Packit 95306a
     } elsif ($type eq 'Delta') {
Packit 95306a
        $new = new Date::Manip::Delta @a;
Packit 95306a
     } elsif ($type eq 'Recur') {
Packit 95306a
        $new = new Date::Manip::Recur @a;
Packit 95306a
     }
Packit 95306a
Packit 95306a
  } elsif ($op eq 'new_config') {
Packit 95306a
     my $o = $obj{$args[0]};
Packit 95306a
     shift(@args);
Packit 95306a
     $new  = $o->new_config(@args);
Packit 95306a
Packit 95306a
  } elsif ($op eq 'base') {
Packit 95306a
     my $o = $obj{$args[0]};
Packit 95306a
     shift(@args);
Packit 95306a
     $new  = $o->base(@args);
Packit 95306a
Packit 95306a
  } elsif ($op eq 'tz') {
Packit 95306a
     my $o = $obj{$args[0]};
Packit 95306a
     shift(@args);
Packit 95306a
     $new  = $o->tz(@args);
Packit 95306a
Packit 95306a
  } elsif ($op eq 'config') {
Packit 95306a
     my $o = $obj{$args[0]};
Packit 95306a
     shift(@args);
Packit 95306a
     $o->config(@args);
Packit 95306a
     return (0);
Packit 95306a
Packit 95306a
  } elsif ($op eq 'get_config') {
Packit 95306a
     my $o = $obj{$args[0]};
Packit 95306a
     shift(@args);
Packit 95306a
     my @ret = $o->get_config(@args);
Packit 95306a
     if (@ret > 3) {
Packit 95306a
        @ret = @ret[0..2];
Packit 95306a
     }
Packit 95306a
     return @ret;
Packit 95306a
Packit 95306a
  } elsif ($op eq 'version') {
Packit 95306a
     my $o = $obj{$args[0]};
Packit 95306a
     shift(@args);
Packit 95306a
     return $o->version(@args);
Packit 95306a
Packit 95306a
  } elsif (exists $obj{$op}) {
Packit 95306a
     my $o = $obj{$op};
Packit 95306a
     $new = $o->new(@args);
Packit 95306a
  }
Packit 95306a
Packit 95306a
  if (! defined $new) {
Packit 95306a
     return (undef);
Packit 95306a
  }
Packit 95306a
Packit 95306a
  my($dmb,$dmt);
Packit 95306a
  if (ref($new) eq 'Date::Manip::Base') {
Packit 95306a
     $dmb = $new;
Packit 95306a
     $dmt = '---';
Packit 95306a
  } elsif (ref($new) eq 'Date::Manip::TZ') {
Packit 95306a
     $dmb = $new->base();
Packit 95306a
     $dmt = $new;
Packit 95306a
  } else {
Packit 95306a
     $dmb = $new->base();
Packit 95306a
     $dmt = $new->tz();
Packit 95306a
  }
Packit 95306a
Packit 95306a
  $obj{$label} = $new;
Packit 95306a
  my @ret;
Packit 95306a
  @ret = (ref($new));
Packit 95306a
Packit 95306a
  if (! exists $dmb{$dmb}) {
Packit 95306a
     $dmb{$dmb} = $label;
Packit 95306a
  }
Packit 95306a
  push(@ret,$dmb{$dmb});
Packit 95306a
  
Packit 95306a
  if ($dmt eq '---') {
Packit 95306a
     push(@ret,$dmt);
Packit 95306a
  } else {
Packit 95306a
     if (! exists $dmt{$dmt}) {
Packit 95306a
        $dmt{$dmt} = $label;
Packit 95306a
     }
Packit 95306a
     push(@ret,$dmt{$dmt});
Packit 95306a
  }
Packit 95306a
Packit 95306a
  return @ret;
Packit 95306a
}
Packit 95306a
Packit 95306a
$tests="
Packit 95306a
Packit 95306a
### new CLASS
Packit 95306a
Packit 95306a
o0001  new  Base
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Base
Packit 95306a
   o0001
Packit 95306a
   ---
Packit 95306a
Packit 95306a
o0002  new  TZ
Packit 95306a
   =>
Packit 95306a
   Date::Manip::TZ
Packit 95306a
   o0002
Packit 95306a
   o0002
Packit 95306a
Packit 95306a
o0003  new  Date
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0003
Packit 95306a
   o0003
Packit 95306a
Packit 95306a
o0004  new  Delta
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Delta
Packit 95306a
   o0004
Packit 95306a
   o0004
Packit 95306a
Packit 95306a
o0005  new  Recur
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Recur
Packit 95306a
   o0005
Packit 95306a
   o0005
Packit 95306a
Packit 95306a
### OBJ->new
Packit 95306a
Packit 95306a
o0006  o0001
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Base
Packit 95306a
   o0006
Packit 95306a
   ---
Packit 95306a
Packit 95306a
o0007  o0002
Packit 95306a
   =>
Packit 95306a
   Date::Manip::TZ
Packit 95306a
   o0002
Packit 95306a
   o0007
Packit 95306a
Packit 95306a
o0008  o0003
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0003
Packit 95306a
   o0003
Packit 95306a
Packit 95306a
o0009  o0004
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Delta
Packit 95306a
   o0004
Packit 95306a
   o0004
Packit 95306a
Packit 95306a
o0010  o0005
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Recur
Packit 95306a
   o0005
Packit 95306a
   o0005
Packit 95306a
Packit 95306a
### new CLASS OBJ
Packit 95306a
Packit 95306a
o0011  new  Base  o0001
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Base
Packit 95306a
   o0011
Packit 95306a
   ---
Packit 95306a
Packit 95306a
o0012  new  Date o0001
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0001
Packit 95306a
   o0012
Packit 95306a
Packit 95306a
o0013  new  Date o0002
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0002
Packit 95306a
   o0002
Packit 95306a
Packit 95306a
### new_config
Packit 95306a
Packit 95306a
o0014  new_config  o0001
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Base
Packit 95306a
   o0014
Packit 95306a
   ---
Packit 95306a
Packit 95306a
o0015  new_config  o0002
Packit 95306a
   =>
Packit 95306a
   Date::Manip::TZ
Packit 95306a
   o0015
Packit 95306a
   o0015
Packit 95306a
Packit 95306a
o0016  new_config  o0003
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0016
Packit 95306a
   o0016
Packit 95306a
Packit 95306a
o0017  new_config  o0004
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Delta
Packit 95306a
   o0017
Packit 95306a
   o0017
Packit 95306a
Packit 95306a
o0018  new_config  o0005
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Recur
Packit 95306a
   o0018
Packit 95306a
   o0018
Packit 95306a
Packit 95306a
o0019  new_config  o0003 now
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0019
Packit 95306a
   o0019
Packit 95306a
Packit 95306a
o0020  new_config  o0003 [ forcedate now,America/New_York ]
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0020
Packit 95306a
   o0020
Packit 95306a
Packit 95306a
o0021  new_config  o0003 now [ forcedate now,America/New_York ]
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0021
Packit 95306a
   o0021
Packit 95306a
Packit 95306a
### base/tz
Packit 95306a
Packit 95306a
o0022  base o0001
Packit 95306a
   =>
Packit 95306a
   __undef__
Packit 95306a
Packit 95306a
o0023  base o0002
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Base
Packit 95306a
   o0002
Packit 95306a
   ---
Packit 95306a
Packit 95306a
o0024  base o0003
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Base
Packit 95306a
   o0003
Packit 95306a
   ---
Packit 95306a
Packit 95306a
o0022  tz o0001
Packit 95306a
   =>
Packit 95306a
   __undef__
Packit 95306a
Packit 95306a
o0023  tz o0002
Packit 95306a
   =>
Packit 95306a
   __undef__
Packit 95306a
Packit 95306a
o0024  tz o0003
Packit 95306a
   =>
Packit 95306a
   Date::Manip::TZ
Packit 95306a
   o0003
Packit 95306a
   o0003
Packit 95306a
Packit 95306a
### misc
Packit 95306a
Packit 95306a
o0100  new  Date  now noiso8601
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0100
Packit 95306a
   o0100
Packit 95306a
Packit 95306a
o0101  new  Date  now [ forcedate now,America/New_York ]
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0101
Packit 95306a
   o0101
Packit 95306a
Packit 95306a
o0102  new  Date  now noiso8601 [ forcedate now,America/New_York ]
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0102
Packit 95306a
   o0102
Packit 95306a
Packit 95306a
o0103  new  Date  o0102 now noiso8601
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0102
Packit 95306a
   o0102
Packit 95306a
Packit 95306a
o0104  new  Date o0102  now [ forcedate now,America/New_York ]
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0104
Packit 95306a
   o0104
Packit 95306a
Packit 95306a
o0105  new  Date o0102  now noiso8601 [ forcedate now,America/New_York ]
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0105
Packit 95306a
   o0105
Packit 95306a
Packit 95306a
o0106  new  TZ  [ forcedate now,America/New_York ]
Packit 95306a
   =>
Packit 95306a
   Date::Manip::TZ
Packit 95306a
   o0106
Packit 95306a
   o0106
Packit 95306a
Packit 95306a
o0107  new  TZ o0102  [ forcedate now,America/New_York ]
Packit 95306a
   =>
Packit 95306a
   Date::Manip::TZ
Packit 95306a
   o0107
Packit 95306a
   o0107
Packit 95306a
Packit 95306a
o0108  new  Date o0101  now noiso8601 [ forcedate now,America/New_York ]
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Date
Packit 95306a
   o0108
Packit 95306a
   o0108
Packit 95306a
Packit 95306a
o0109  new  Base o0101  [ defaults 1 ]
Packit 95306a
   =>
Packit 95306a
   Date::Manip::Base
Packit 95306a
   o0109
Packit 95306a
   ---
Packit 95306a
Packit 95306a
### config/get_config
Packit 95306a
Packit 95306a
- get_config o0001 yytoyyyy   => 89
Packit 95306a
Packit 95306a
- config o0001 yytoyyyy c18   => 0
Packit 95306a
Packit 95306a
- get_config o0001 yytoyyyy   => c18
Packit 95306a
Packit 95306a
- get_config o0002 yytoyyyy   => 89
Packit 95306a
Packit 95306a
- config o0002 yytoyyyy c18   => 0
Packit 95306a
Packit 95306a
- get_config o0002 yytoyyyy   => c18
Packit 95306a
Packit 95306a
- get_config o0003 yytoyyyy   => 89
Packit 95306a
Packit 95306a
- config o0003 yytoyyyy c18   => 0
Packit 95306a
Packit 95306a
- get_config o0003 yytoyyyy   => c18
Packit 95306a
Packit 95306a
- get_config o0004 yytoyyyy defaulttime => 89 midnight
Packit 95306a
Packit 95306a
- get_config o0004            => dateformat defaults defaulttime
Packit 95306a
Packit 95306a
### version
Packit 95306a
Packit 95306a
- version o0001    => $vers
Packit 95306a
Packit 95306a
- version o0001 1  => $vers
Packit 95306a
Packit 95306a
- version o0002 1  => '$vers [america/chicago]'
Packit 95306a
Packit 95306a
- config  o0002 setdate now,america/new_york => 0
Packit 95306a
Packit 95306a
- version o0002    => $vers
Packit 95306a
Packit 95306a
- version o0002 1  => '$vers [america/chicago]'
Packit 95306a
Packit 95306a
";
Packit 95306a
Packit 95306a
$t->tests(func  => \&test,
Packit 95306a
          tests => $tests);
Packit 95306a
$t->done_testing();
Packit 95306a
Packit 95306a
#Local Variables:
Packit 95306a
#mode: cperl
Packit 95306a
#indent-tabs-mode: nil
Packit 95306a
#cperl-indent-level: 3
Packit 95306a
#cperl-continued-statement-offset: 2
Packit 95306a
#cperl-continued-brace-offset: 0
Packit 95306a
#cperl-brace-offset: 0
Packit 95306a
#cperl-brace-imaginary-offset: 0
Packit 95306a
#cperl-label-offset: 0
Packit 95306a
#End: