Tripletail

 view release on metacpan or  search on metacpan

t/value.t  view on Meta::CPAN

ok($v->set('2004-02-29')->isExistentDay, 'isExistentDay');
#ok($v->set('2004-2-29')->isExistentDay, 'isExistentDay');
#ok(! $v->set('2004-2-29')->isExistentDay, 'isExistentDay');
ok(! $v->set('2003-02-29')->isExistentDay, 'isExistentDay');

ok($v->set('00:00:00')->isExistentTime, 'isExistentTime');
#ok($v->set('0:0:0')->isExistentTime(1), 'isExistentTime');
#ok(! $v->set('0:0:0')->isExistentTime(0), 'isExistentTime');
ok(! $v->set('24:00:00')->isExistentTime, 'isExistentTime');
ok(! $v->set('02:60:00')->isExistentTime, 'isExistentTime');
ok(! $v->set('02:00:60')->isExistentTime, 'isExistentTime');

# デフォルト
ok($v->set('2004-02-29 00:00:00')->isExistentDateTime, 'isExistentDateTime');
ok(! $v->set('2003-02-29 00:00:00')->isExistentDateTime, 'isExistentDateTime');
ok(! $v->set('2010-06-01 24:00:00')->isExistentDateTime, 'isExistentDateTime');
ok(! $v->set('2010-6-1 0:00:00')->isExistentDateTime, 'isExistentDateTime');

# オプション
ok($v->set('2004-02-29 00:00:00')->isExistentDateTime(format => "YYYYMMDD HHMMSS"), 'isExistentDateTime');
ok($v->set('2004-02-29 00:00:00')->isExistentDateTime(date_delim => '-', time_delim => ':'), 'isExistentDateTime');
ok($v->set('2004/02/29 00:00:00')->isExistentDateTime(date_delim => '/', time_delim => ':'), 'isExistentDateTime');
ok($v->set('2004/02/29 00:00:00')->isExistentDateTime(date_delim => '-/', time_delim => '.:'), 'isExistentDateTime');
ok($v->set('2004 02 29 00 00 00')->isExistentDateTime(date_delim => ' ', time_delim => ' '), 'isExistentDateTime');
ok($v->set('2004/02/29 00:00:00')->isExistentDateTime(date_delim => '-/ ', time_delim => '.: '), 'isExistentDateTime');
ok($v->set('2004/02/29 00:00:00')->isExistentDateTime(date_delim => '/'), 'isExistentDateTime');
ok($v->set('20040229000000')->isExistentDateTime(date_delim => '', time_delim => ''), 'isExistentDateTime');
ok($v->set('20040229000000')->isExistentDateTime(date_delim_optional => '-/ ', time_delim_optional => '.: '), 'isExistentDateTime');
ok($v->set('20040229000000')->isExistentDateTime(date_delim_optional => '-/ ', time_delim_optional => '.: '), 'isExistentDateTime');

ok($v->set('2010-06-01 10:00:00')->isExistentDateTime(format => "YMD HMS"), 'isExistentDateTime format');
ok($v->set('2010-6-1 1:0:0')->isExistentDateTime(format => "YMD HMS"), 'isExistentDateTime format');
ok($v->set('10-6-1 1:0:0')->isExistentDateTime(format => "YMD HMS"), 'isExistentDateTime format');
ok(! $v->set('0-6-1 1:0:0')->isExistentDateTime(format => "YMD HMS"), 'isExistentDateTime format');
ok($v->set('2010-06-01 1:0:0')->isExistentDateTime(format => "YYYYMMDD HMS"), 'isExistentDateTime format');
ok(! $v->set('2010-6-1 1:0:0')->isExistentDateTime(format => "YYYYMMDD HMS"), 'isExistentDateTime format');
ok($v->set('2010-6-1 01:00:00')->isExistentDateTime(format => "YMD HHMMSS"), 'isExistentDateTime format');
ok(! $v->set('2010-6-1 1:0:0')->isExistentDateTime(format => "YMD HHMMSS"), 'isExistentDateTime format');
ok($v->set('20040229000000')->isExistentDateTime(format => "YMD HMS", date_delim => '', time_delim => ''), 'isExistentDateTime format');
ok(! $v->set('040229000000')->isExistentDateTime(format => "YMD HMS", date_delim => '', time_delim => ''), 'isExistentDateTime format');
ok(! $v->set('0229000000')->isExistentDateTime(format => "YMD HMS", date_delim => '', time_delim => ''), 'isExistentDateTime format');
ok($v->set('20040229000000')->isExistentDateTime(format => "YYYYMMDD HMS", date_delim => '', time_delim => ''), 'isExistentDateTime format');
ok($v->set('20040229000000')->isExistentDateTime(format => "YMD HHMMSS", date_delim => '', time_delim => ''), 'isExistentDateTime format');
ok(! $v->set('20030229000000')->isExistentDateTime(format => "YMD HMS", date_delim => '', time_delim => ''), 'isExistentDateTime format');
ok(! $v->set('20030229000000')->isExistentDateTime(format => "YYYYMMDD HMS", date_delim => '', time_delim => ''), 'isExistentDateTime format');
ok(! $v->set('20030229000000')->isExistentDateTime(format => "YMD HHMMSS", date_delim => '', time_delim => ''), 'isExistentDateTime format');
ok(! $v->set('04229000')->isExistentDateTime(format => "YMD HMS", date_delim => '', time_delim => ''), 'isExistentDateTime format');

ok($v->set('2010-08-12 00:00:00')->isExistentDateTime(time_delim_optional => ':'), 'isExistentDateTime delim_optional');
ok($v->set('2010-08-12 000000')->isExistentDateTime(time_delim_optional => ':'), 'isExistentDateTime delim_optional');
ok($v->set('2010-08-12 000000')->isExistentDateTime(time_delim => ''), 'isExistentDateTime delim_optional');
ok(! $v->set('2010-08-12 00:00:00')->isExistentDateTime(time_delim => ''), 'isExistentDateTime delim_optional');
ok($v->set('2010-08-31 00:00:00')->isExistentDateTime(date_delim_optional => '-'), 'isExistentDateTime delim_optional');
ok($v->set('20100831 00:00:00')->isExistentDateTime( date_delim_optional => '-'), 'isExistentDateTime delim_optional');
ok($v->set('20100831 00:00:00')->isExistentDateTime(date_delim => ''), 'isExistentDateTime delim_optional');
ok(! $v->set('2010-08-31 00:00:00')->isExistentDateTime(date_delim => ''), 'isExistentDateTime delim_optional');
ok($v->set('2010-08-31 00:00:00')->isExistentDateTime(date_delim_optional => '-'), 'isExistentDateTime delim_optional');

ok($v->set('GIF89a-----')->isGif, 'isGif');
ok($v->set("\xFF\xD8-----")->isJpeg, 'isJpeg');
ok($v->set("\x89PNG\x0D\x0A\x1A\x0A-----")->isPng, 'isPng');

ok($v->set("https://foo/")->isHttpsUrl, 'isHttpsUrl');
ok($v->set("http://foo/")->isHttpUrl, 'isHttpUrl');

$v->set('テスト');
ok($v->isLen(0, 9), 'isLen');
ok(! $v->isLen(0, 8), 'isLen');
ok($v->isSjisLen(0, 6), 'isSjisLen');
ok(! $v->isSjisLen(0, 5), 'isSjisLen');
ok($v->isCharLen(0, 3), 'isCharLen');
ok(! $v->isCharLen(0, 2), 'isCharLen');

ok $v->set('example.org')->isDomainName, 'example.org is a domain name';
ok !$v->set('-example.org')->isDomainName, '-example.org is not a domain name';
ok !$v->set('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.jp')
      ->isDomainName, '1234...............7890.jp is too long to be a domain name';

is($v->set("192.168.0.1")->isIpAddress("10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 127.0.0.1 fe80::/10 ::1"), 1, 'isIpAddress');
is($v->set("255.168.0.1")->isIpAddress("10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 127.0.0.1 fe80::/10 ::1"), undef, 'isIpAddress');
is($v->set("255.168.0.1")->isIpAddress, undef, 'isIpAddress error');
is($v->set("255.168.0.1")->isIpAddress(\123), undef, 'isIpAddress error');
is($v->set("fe80::1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1")->isIpAddress('192.168.0.1'), undef, 'isIpAddress error');
is($v->set("255.168.0.1")->isIpAddress('fe80::1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1/10'), undef, 'isIpAddress error');

is($v->set('2000/01/01')->isDateString('%Y/%m/%d'), 1    , 'isDateString [2000/01/01] [%Y/%m/%d]');
is($v->set('2000/01/01')->isDateString('%Y-%m-%d'), undef, 'isDateString [2000/01/01] [%Y-%m-%d]');
dies_ok {
    $v->set('2000/01/01')->isDateString('foo bar');
} 'isDateString [2000/01/01] [foo bar]';

{
  ok($v->can("isChar"), "isChar is supported");

  throws_ok {
    $v->isChar();
  } qr/no arguments/, 'isChar requires arguments';

  my $digits = "0123456789";
  my $lower  = "abcdefghijklmnopqrstuvwxyz";
  my $upper  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

  $v->set($digits);
  ok($v->isChar("digit"), "isChar: digit");

  $v->set("a");
  ok(!$v->isChar("digit"), "isChar: digit rejects alpha");

  $v->set($lower.$upper);
  ok($v->isChar("alpha"), "isChar: alpha");

  $v->set("0");
  ok(!$v->isChar("alpha"), "isChar: alpha rejects digit");

  $v->set($lower);
  ok($v->isChar("loweralpha"), "isChar: loweralpha");

  $v->set("A");
  ok(!$v->isChar("loweralpha"), "isChar: loweralpha rejects upper");

  $v->set("0");



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