File: client.t

package info (click to toggle)
libanyevent-redis-perl 0.24-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 248 kB
  • ctags: 142
  • sloc: perl: 1,888; makefile: 2
file content (90 lines) | stat: -rw-r--r-- 2,302 bytes parent folder | download | duplicates (5)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
use strict;
use Test::More;
use t::Redis;

test_redis {
    my $r = shift;

    $r->all_cv->begin(sub { $_[0]->send });

    my $info = $r->info->recv;
    is ref $info, 'HASH';
    ok $info->{redis_version};

    $r->set("foo", "bar", sub { pass "SET foo" });
    $r->get("foo", sub { is $_[0], "bar" });

    $r->lpush("list", "bar");
    $r->lpush("list", "baz");

    is $r->lpop("list")->recv, 'baz';
    is $r->lpop("list")->recv, 'bar';

    $r->set("prefix.bar", "test", sub { $r->get("prefix.bar", sub { is $_[0], "test" }) });
    $r->set("prefix.baz", "test");

    $r->mget(
        "prefix.bar",
        "prefix.baz",
        "foo",
        sub {
            my $res = shift;
            is $res->[0], "test";
            is $res->[2], "bar";
        }
    );
    $r->mget(
        1, 2, 3,
        sub {
            my $res = shift;
            map { ok !$_ } @$res;
        }
    );
    $r->mget(
        1,
        "prefix.baz",
        "barbaz",
        sub {
            my $res = shift;
            ok !$res->[0];
            is $res->[1], "test";
            ok !$res->[2];
        }
    );

    if ($info->{redis_version} =~ /^2/) {
        $r->hset("hash", "foo", "bar", sub { is $_[0], 1 });
        $r->hset("hash", "baz", "foo");
        $r->hget("hash", "foo", sub { is $_[0], "bar" });
        $r->hmget("hash", "foo", "baz",
            sub { my $res = shift; is $res->[0], "bar"; is $res->[1], "foo" });
        $r->hdel("hash", "foo", sub { is $_[0], 1 });
        $r->hmset("hash", "foo", 1, "bar", 2, "baz", 3,
            sub { my $res = shift; ok $res });
        $r->hincrby("hash", "foo", 2, sub { my $res = shift; is $res, 3 });
        $r->hkeys("hash", sub {my $res = shift; is scalar @$res, 3;});
        $r->hvals("hash", sub {my $res = shift; is scalar @$res, 3;});
        $r->hgetall("hash", sub {my $res = shift; is scalar @$res, 6;});
        for (qw/foo bar baz/) {
            $r->hdel("hash", $_);
        }
    }

    $r->keys('prefix.*', sub { my $keys = shift; is ref $keys, 'ARRAY'; is @$keys, 2 });

    my $cv = $r->get("nonx");
    is $cv->recv, undef;

    my $err;
    $r->{on_error} = sub { $err = shift };
    $r->bogus("foo", sub { });

    $r->all_cv->end;
    $r->all_cv->recv;

    like $err, qr/ERR unknown command/;
};

done_testing;