App-Gimei

 view release on metacpan or  search on metacpan

t/CLI.pm  view on Meta::CPAN

use v5.36;

package t::CLI;

use App::Gimei::Runner;
use Capture::Tiny qw(capture);
use Class::Tiny   qw(stdout stderr exit_code error_message);

sub run ( $class, @args ) {
    my $self = $class->new;

    my @capture = capture {
        my $code = eval { App::Gimei::Runner->new->execute(@args) };
        $self->exit_code($code);
        $self->error_message($@);
    };
    $self->stdout( $capture[0] );
    $self->stderr( $capture[1] );

    return $self;
}

1;

t/Util.pm  view on Meta::CPAN

        } else {
            is $cli->exit_code, 0, "$t->{Name} exit_code";
        }

        if ( ref( $t->{expected_stdout} ) eq 'Regexp' ) {
            like $cli->stdout, $t->{expected_stdout}, "$t->{Name} stdout";
        } else {
            is $cli->stdout, $t->{expected_stdout}, "$t->{Name} stdout";
        }

        if ( ref( $t->{expected_stderr} ) eq 'Regexp' ) {
            like $cli->stderr, $t->{expected_stderr}, "$t->{Name} stderr";
        } else {
            is $cli->stderr, $t->{expected_stderr}, "$t->{Name} stderr";
        }
    }

    done_testing;
}
1;

t/option_h.t  view on Meta::CPAN


use lib ".";
use t::Util qw(run);

my @tests = (
    {
        Name                   => 'long form',
        args                   => ['-help'],
        expected_error_message => '',
        expected_stdout        => qr/^Usage:/,
        expected_stderr        => '',
    },
    {
        Name                   => 'short form',
        args                   => ['-h'],
        expected_error_message => '',
        expected_stdout        => qr/^Usage:/,
        expected_stderr        => '',
    },
);
run(@tests);

t/option_n.t  view on Meta::CPAN

use lib ".";
use t::Util qw(run);

my @tests = (
    {
        Name                   => 'number expected',
        args                   => [ '-n', 'Alice' ],
        expected_error_message =>
          qr/Error: Value "Alice" invalid for option n \((integer )?number expected\)\n/,
        expected_stdout => '',
        expected_stderr => '',
    },
    {
        Name                   => 'positive number expected',
        args                   => [ '-n', '-1' ],
        expected_error_message =>
          "Error: value -1 invalid for option n (must be positive number)\n",
        expected_stdout => '',
        expected_stderr => '',
    },
    {
        Name                   => '-n 1',
        args                   => [ '-n', '1' ],
        expected_error_message => '',
        expected_stdout        => qr/^\S+\s\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => '-n 2',
        args                   => [ '-n', '2', 'name:family' ],
        expected_error_message => '',
        expected_stdout        => qr/^\S+\n\S+$/,
        expected_stderr        => '',
    },
);
run(@tests);

t/option_sep.t  view on Meta::CPAN

use v5.36;

use lib ".";
use t::Util qw(run);

my @tests = (
    {
        Name                   => '-sep :',
        args                   => [ '-sep', ':' ],
        expected_stdout        => qr/^\S+\s\S+$/,
        expected_stderr        => '',
        expected_error_message => '',
    },
    {
        Name                   => '-sep : pref, city',
        args                   => [ '-sep', ':', 'address:prefecture', 'address:city' ],
        expected_stdout        => qr/^[^:]+:[^:]+$/,
        expected_stderr        => '',
        expected_error_message => '',
    },
);

run(@tests);

t/option_v.t  view on Meta::CPAN


use lib ".";
use t::Util qw(run);

my @tests = (
    {
        Name                   => 'long form',
        args                   => ['-version'],
        expected_error_message => '',
        expected_stdout        => "$App::Gimei::VERSION\n",
        expected_stderr        => '',
    },
    {
        Name                   => 'short form',
        args                   => ['-v'],
        expected_error_message => '',
        expected_stdout        => "$App::Gimei::VERSION\n",
        expected_stderr        => '',
    },
);
run(@tests);

t/render.t  view on Meta::CPAN


use lib ".";
use t::Util qw(run);

my @tests = (
    {
        Name                   => 'default',
        args                   => ['name'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+\s\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'address->romaji',
        args                   => ['address:romaji'],
        expected_error_message =>
          "Error: rendering romaji is not supported for address\n",
        expected_stdout => '',
        expected_stderr => '',
    },
    {
        Name                   => 'gender',
        args                   => ['name:gender'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'kanji',
        args                   => ['name:kanji'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+\s\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'hiragana',
        args                   => ['name:family:hiragana'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'katakana',
        args                   => ['address:katakana'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'unknown rendering',
        args                   => ['address:prefecture:romaji'],
        expected_error_message =>
          "Error: rendering romaji is not supported for address\n",
        expected_stdout => '',
        expected_stderr => '',
    },
);
run(@tests);

t/subtype.t  view on Meta::CPAN


use lib ".";
use t::Util qw(run);

my @tests = (
    {
        Name                   => 'family',
        args                   => ['name:family'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'last',
        args                   => ['name:last'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'given',
        args                   => ['male:given'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'first',
        args                   => ['female:first'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'gender',
        args                   => ['name:gender'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'sex',
        args                   => ['name:sex'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'unknown',
        args                   => ['female:unknown'],
        expected_error_message => "Error: unknown subtype or rendering: unknown\n",
        expected_stdout        => '',
        expected_stderr        => '',
    },
    {
        Name                   => 'prefecture',
        args                   => ['address:prefecture'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'city',
        args                   => ['address:city'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'town',
        args                   => ['address:town'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'unknown',
        args                   => ['address:unknown'],
        expected_error_message => "Error: unknown subtype or rendering: unknown\n",
        expected_stdout        => '',
        expected_stderr        => '',
    },
);
run(@tests);

t/word_type.t  view on Meta::CPAN


use lib ".";
use t::Util qw(run);

my @tests = (
    {
        Name                   => 'default',
        args                   => [],
        expected_error_message => '',
        expected_stdout        => qr/^\S+\s\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'name',
        args                   => ['name'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+\s\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'male',
        args                   => ['male'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+\s\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'female',
        args                   => ['female'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+\s\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'address',
        args                   => ['address'],
        expected_error_message => '',
        expected_stdout        => qr/^\S+$/,
        expected_stderr        => '',
    },
    {
        Name                   => 'not supported',
        args                   => ['NOT_SUPPORTED'],
        expected_error_message => "Error: unknown word_type: NOT_SUPPORTED\n",
        expected_stdout        => '',
        expected_stderr        => '',
    },
);
run(@tests);



( run in 0.331 second using v1.01-cache-2.11-cpan-26ccb49234f )