Term-Sk

 view release on metacpan or  search on metacpan

t/0010_test.t  view on Meta::CPAN

{
    my $ctr = Term::Sk->new('num %c of %m', { test => 1, base => 1234567, target => 2345678, num => q{9,999} } );
    ok(defined($ctr),                                           'Test-0340: %c of %m works ok');
    is(content($ctr->get_line), 'num 1,234,567 of 2,345,678',   'Test-0350: first number %c of %m displayed correctly');
}

{
    my $ctr = Term::Sk->new('num %c of %m', { test => 1, base => 1234567, target => 2345678, num => q{9 999} } );
    ok(defined($ctr),                                           'Test-0360: %c of %m works ok');
    is(content($ctr->get_line), 'num 1 234 567 of 2 345 678',   'Test-0370: first number %c of %m displayed correctly');
}

{
    my $ctr = Term::Sk->new('num %c of %m', { test => 1, base => 1234567, target => 2345678, num => q{9_999} } );
    ok(defined($ctr),                                           'Test-0380: %c of %m works ok');
    is(content($ctr->get_line), 'num 1_234_567 of 2_345_678',   'Test-0390: first number %c of %m displayed correctly');
}

{
    my $ctr = Term::Sk->new('num %c of %m', { test => 1, base => 1234567, target => 2345678, num => q{9_99} } );
    ok(defined($ctr),                                           'Test-0400: %c of %m works ok');
    is(content($ctr->get_line), 'num 1_23_45_67 of 2_34_56_78', 'Test-0410: first number %c of %m displayed correctly');
}

{
    my $ctr = Term::Sk->new('num %c of %m', { test => 1, base => 1234567, target => 2345678, num => q{9} } );
    ok(defined($ctr),                                           'Test-0420: %c of %m works ok');
    is(content($ctr->get_line), 'num 1234567 of 2345678',       'Test-0430: first number %c of %m displayed correctly');
}

{
    my $ctr = Term::Sk->new('num %c of %m', { test => 1, base => 1234567, target => 2345678, num => q{9'999} } );
    ok(defined($ctr),                                           'Test-0440: %c of %m works ok');
    is(content($ctr->get_line), q{num 1'234'567 of 2'345'678},  'Test-0450: first number %c of %m displayed correctly');
}

{
    my $ctr = eval{Term::Sk->new('num %c of %m', { test => 1, base => 1234567, target => 2345678, num => q{8'888} } )};
    ok($@,                                                      'Test-0460: fails ok');
    like($@, qr{Can't [ ] parse [ ] num}xms,                    'Test-0470: error message');
}

{
    my $flatfile = "Test hijabc\010\010\010xyzklm";

    Term::Sk::rem_backspace(\$flatfile);

    is($flatfile, 'Test hijxyzklm',                             'Test-0480: backspaces have been removed');
}

{
    my $flatfile = ('abcde' x 37).("\010" x 28).'fghij';

    Term::Sk::rem_backspace(\$flatfile);

    is(length($flatfile), 162,                                  'Test-0540: length abcde (200,15)');
    is(substr($flatfile, -10), 'cdeabfghij',                    'Test-0560: trailing characters for abcde (200,15)');
}

{
    my $ctr = Term::Sk->new('num %c of %m', { test => 1, base => 1234567, target => 2345678, commify => sub{ join '!', split m{}xms, $_[0]; } });
    ok(defined($ctr),                                           'Test-0590: commify sub works ok');
    is(content($ctr->get_line), 'num 1!2!3!4!5!6!7 of 2!3!4!5!6!7!8',
                                                                'Test-0600: show commified numbers');
}

{
    my $ctr = Term::Sk->new('Token %6k Ctr %c', { test => 1, base => 1, token => 'Spain' } );
    ok(defined($ctr),                                           'Test-0610: %6k %c works ok');
    is(content($ctr->get_line), q{Token Spain  Ctr 1},          'Test-0620: first Token displayed correctly');
    $ctr->token('USA');
    is(content($ctr->get_line), q{Token USA    Ctr 1},          'Test-0630: second Token displayed correctly');
    $ctr->tok_maybe('China');
    is(content($ctr->get_line), q{Token China  Ctr 1},          'Test-0632: third Token displayed correctly');
}

{
    # mock-time = Tue Jun 21 14:21:02-28 2011
    my $ctr = Term::Sk->new('Time %8t Ctr %c', { test => 1, base => 3, mock_tm => 1308658862.287032} );
    ok(defined($ctr),                                           'Test-0640: %8t %c works ok');
    is(content($ctr->get_line), q{Time 00:00:00 Ctr 3},         'Test-0650: first Time displayed correctly');
    # mock-time = Tue Jun 21 14:29:37-53 2011
    $ctr->mock_time(1308659377.534502);
    $ctr->up;
    is(content($ctr->get_line), q{Time 00:08:35 Ctr 4},         'Test-0660: second Time displayed correctly');
}

{
    # mock-time = Tue Jun 21 14:21:02-28 2011
    my $ctr = Term::Sk->new('Time %8t %d Ctr %c', { test => 1, base => 2, mock_tm => 1308658862.287032} );
    ok(defined($ctr),                                           'Test-0670: %8t %d %c works ok');
    is(content($ctr->get_line), q{Time 00:00:00 - Ctr 2},       'Test-0680: first Time displayed correctly');
    # mock-time = Tue Jun 21 14:21:02-29 2011
    $ctr->mock_time(1308658862.291483);
    $ctr->up;
    is(content($ctr->get_line), q{Time 00:00:00 \ Ctr 3},       'Test-0690: second Time displayed, dash has not changed');
    # mock-time = Tue Jun 21 14:21:02-32 2011
    $ctr->mock_time(1308658862.323717);
    $ctr->up;
    is(content($ctr->get_line), q{Time 00:00:00 | Ctr 4},       'Test-0700: third Time displayed, dash has changed');
    # mock-time = Tue Jun 21 14:21:03-29 2011
    $ctr->mock_time(1308658863.2911543);
    $ctr->up;
    is(content($ctr->get_line), q{Time 00:00:01 / Ctr 5},       'Test-0710: fourth Time displayed, Time and dash have changed');
}

{
  my $flatfile = "Test hijabc\010\010\010xyzklmttt\010\010yzz";

  (my $disp_before = $flatfile) =~ s{\010}'<'xmsg;
  is($disp_before, q{Test hijabc<<<xyzklmttt<<yzz},             'Test-0720: before rem_backspace');

  Term::Sk::rem_backspace(\$flatfile);

  (my $disp_after = $flatfile) =~ s{\010}'<'xmsg;
  is($disp_after,  q{Test hijxyzklmtyzz},                       'Test-0730: after rem_backspace');
}

{
    my $ctr = Term::Sk->new('Token1 %6k Token2 %6k Ctr %c', { test => 1, base => 1, token => ['abc', 'def'] } );
    ok(defined($ctr),                                                 'Test-0740: %6k %6k %c works ok');



( run in 0.438 second using v1.01-cache-2.11-cpan-71847e10f99 )