Cache-Memcached-AnyEvent

 view release on metacpan or  search on metacpan

t/CMAETest/Commands.pm  view on Meta::CPAN

package t::CMAETest::Commands;
use strict;
use AnyEvent::Impl::Perl;
use t::Util;
use Test::More;
use Test::Fatal;

my $key = random_key();
my @keys = map { "commands-$_" } (1..10);
my @callbacks = (
    sub { my ($memd, $cv) = @_; $memd->flush_all(sub { is($_[0], 1, 'Flush all records'); $cv->end }); },
    sub {
        my ($memd, $cv) = @_;
        my $cb = AE::cv {
            is($_[0]->recv, 1, 'Flush all records (via condvar)');
            $cv->end
        };
        $memd->flush_all($cb);
    },
    sub {
        my ($memd, $cv) = @_;
        $memd->get($key, sub { 
            ok(!$_[0], "Get on non-existent value");
            $cv->end
        })
    },
    sub {
        my ($memd, $cv) = @_;
        my $cb = AE::cv {
            ok(!$_[0]->recv, "Get on non-existent value (via cb)");
            $cv->end
        };
        $memd->get($key, $cb)
    },
    sub {
        my ($memd, $cv) = @_;
        my $value = "hoge" x 8192;
        my $cb = AE::cv {
            ok $_[0], "Set a big value";
            $cv->end
        };
        $memd->set("${key}_big", $value, $cb);
    },
    sub {
        my ($memd, $cv) = @_;
        my $value = "hoge" x 8192;
        my $cb = AE::cv {
            is $_[0]->recv, $value, "Get on big value";
            $cv->end;
        };
        $memd->get("${key}_big", $cb);
    },
    sub {
        my ($memd, $cv) = @_;
        my $value = { complex => [ 'structure' ], that => { would => { require_the_use_of => 'Storable' } } };
        my $cb = AE::cv {
            ok $_[0], "Set complex value";
            $cv->end;
        };
        $memd->set("${key}_complex", $value, $cb);
    },
    sub {
        my ($memd, $cv) = @_;
        my $value = { complex => [ 'structure' ], that => { would => { require_the_use_of => 'Storable' } } };
        my $cb = AE::cv {
            is_deeply $_[0]->recv, $value, "Get on complex value";



( run in 1.086 second using v1.01-cache-2.11-cpan-54e63673c56 )