Locale-TextDomain-OO

 view release on metacpan or  search on metacpan

t/42_functional_interface.t  view on Meta::CPAN

#!perl -T

use strict;
use warnings;

use Test::More tests => 20;
use Test::NoWarnings;
use Test::Exception;
use Test::Differences;

BEGIN {
    require_ok('Locale::TextDomain::OO');
    require_ok('Locale::TextDomain::OO::Lexicon::File::MO');
    require_ok('Locale::TextDomain::OO::FunctionalInterface');
    Locale::TextDomain::OO::FunctionalInterface->import;
}

throws_ok
    sub {
        Locale::TextDomain::OO::FunctionalInterface->import(undef);
    },
    qr{\A \QAn undefined value is not a function name}xms,
    'undefined function name';
throws_ok
    sub {
        Locale::TextDomain::OO::FunctionalInterface->import('__y');
    },
    qr{\A \Q"__y" is not exported}xms,
    'function __y failed';

${$loc_ref} = Locale::TextDomain::OO->new(
    language => 'de',
    domain   => 'test',
    category => 'LC_MESSAGES',
    logger   => sub { note shift },
    plugins  => [ qw(
        Expand::Gettext::DomainAndCategory
        Expand::Maketext
    ) ],
);

Locale::TextDomain::OO::Lexicon::File::MO
    ->new(
        logger => sub { note shift },
    )
    ->lexicon_ref({
        search_dirs => [ './t/LocaleData' ],
        decode      => 1,
        data        => [
            '*:LC_MESSAGES:test'          => '*/LC_MESSAGES/test.mo',
            '*:LC_MESSAGES:test_maketext' => '*/LC_MESSAGES/test_maketext.mo',
        ],
    });

# gettext
is
    __('This is a text.'),
    'Das ist ein Text.',
    '__';
is
    __npx(
        'appointment',
        'This is {dates :num} date.',
        'This are {dates :num} dates.',
        1,
        dates => 1,
    ),
    'Das ist 1 Date.',
    '__npx 1';



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