App-Gimei

 view release on metacpan or  search on metacpan

t/CLI.pm  view on Meta::CPAN

class t::CLI {

    use App::Gimei::Runner;
    use Capture::Tiny qw(capture);

    #
    # instance variables
    #

    field $stdout        : param : reader;
    field $stderr        : param : reader;
    field $exit_code     : param : reader;
    field $error_message : param : reader;

    #
    # class methods
    #

    sub run ( $class, @args ) {
        my %param;

        my @capture = capture {
            my $code = eval { App::Gimei::Runner->new->execute(@args) };
            $param{exit_code}     = $code;
            $param{error_message} = $@;
        };

        return $class->new( %param, stdout => $capture[0], stderr => $capture[1] );
    }
}

1;

t/Util.pm  view on Meta::CPAN

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

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

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

    T2->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.40;

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 3.013 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )