Locale-TextDomain-OO-Util

 view release on metacpan or  search on metacpan

t/02_join_split.t  view on Meta::CPAN

#!perl -T

use strict;
use warnings;

use Test::More tests => 23;
use Test::NoWarnings;
use Test::Differences;

BEGIN {
    use_ok 'Locale::TextDomain::OO::Util::JoinSplitLexiconKeys';
}

my $key_util = Locale::TextDomain::OO::Util::JoinSplitLexiconKeys->instance;

LEXICON_KEY: {
    is
        $key_util->join_lexicon_key,
        'i-default::',
        'join empty lexicon key';
    eq_or_diff
        $key_util->split_lexicon_key,
        {},
        'split undef lexicon key';
    is
        $key_util->join_lexicon_key({
            language => 'de-de',
            category => 'my category',
            domain   => 'my domain',
            project  => 'my project:my subproject',
        }),
        'de-de:my category:my domain:my project:my subproject',
        'join lexicon key';
    eq_or_diff
        $key_util->split_lexicon_key('de-de:my category:my domain'),
        {
            language => 'de-de',
            category => 'my category',
            domain   => 'my domain',
        },
        'split lexicon key';
    eq_or_diff
        $key_util->split_lexicon_key(':::my project:my subproject'),
        {
            language => q{},
            category => q{},
            domain   => q{},
            project  => 'my project:my subproject',
        },
        'split lexicon key';
}

MESSAGE_KEY: {
    is
        $key_util->join_message_key({}),
        q{},
        'join empty message key';
    eq_or_diff
        $key_util->split_message_key,
        {},
        'split undef message key';
    eq_or_diff
        $key_util->join_message_key({
            msgctxt      => 'my context',
            msgid        => 'my singular',
            msgid_plural => 'my plural',
        }),
        "my singular\x00my plural\x04my context",



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