File: key_expansion.t

package info (click to toggle)
libsearch-gin-perl 0.11-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 404 kB
  • sloc: perl: 1,007; makefile: 28
file content (72 lines) | stat: -rw-r--r-- 1,276 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
use strict;
use warnings;

use Test::More 'no_plan';

use ok 'Search::GIN::Keys::Deep';

{
    package Foo;
    use Moose;

    with qw(Search::GIN::Keys::Deep);
}

my $foo = Foo->new;

ok( $foo->does("Search::GIN::Keys::Join"), "does Join" );
ok( $foo->does("Search::GIN::Keys::Expand"), "does Expand" );

is_deeply(
    [ $foo->join_keys([qw(foo bar gorch)], [qw(baz zot)]) ],
    [ "foo:bar:gorch", "baz:zot" ],
    "join keys",
);

is_deeply(
    [ $foo->expand_keys({ foo => [qw(bar gorch)] }) ],
    [ [qw(foo bar)], [qw(foo gorch)] ],
    "expand keys",
);

is_deeply(
    [ $foo->process_keys(qw(la la la)) ],
    [ qw(la la la) ],
    "simple keys",
);

is_deeply(
    [ $foo->process_keys({ foo => [ qw(bar gorch) ] }) ],
    [ qw(foo:bar foo:gorch) ],
    "prefixing",
);

is_deeply(
    [ sort $foo->process_keys([ { a => [qw(b)], foo => [ { thingy => [qw(bar gorch)] }, "thing" ] } ]) ],
    [ sort qw(a:b foo:thingy:bar foo:thingy:gorch foo:thing) ],
    "complex",
);

is_deeply(
    [ $foo->process_keys() ],
    [ ],
    "empty",
);

is_deeply(
    [ $foo->process_keys( [ ] ) ],
    [ ],
    "empty",
);

is_deeply(
    [ $foo->process_keys( { } ) ],
    [ ],
    "empty",
);

is_deeply(
    [ $foo->process_keys( { foo => [] } ) ],
    [ ],
    "empty",
);