use warnings;
use strict;
use Test::More;
use FindBin;
use lib "$FindBin::Bin";
use Memd;
if ($Memd::memd) {
plan tests => 5;
} else {
plan skip_all => 'Not connected';
}
use constant count => 1000;
my $another_memd = new Cache::Memcached::Fast(\%Memd::params);
my @keys = map { "nowait-$_" } (1..count);
foreach my $k (@keys) {
$Memd::memd->set($k, $k);
}
$Memd::memd->replace('no-such-key', 1);
$Memd::memd->replace('no-such-key', 1);
my @extra_keys = @keys;
for (1..count) {
splice(@extra_keys, int(rand(@extra_keys + 1)), 0, "no_such_key-$_");
}
my $res = $Memd::memd->get_multi(@extra_keys);
isa_ok($res, 'HASH');
is(scalar keys %$res, count, 'Fetched all keys');
my $count = 0;
while (my ($k, $v) = each %$res) {
++$count if $k eq $v;
}
is($count, count, 'Match results');
is($another_memd->get($keys[$#keys]), $keys[$#keys]);
foreach my $k (@keys) {
$Memd::memd->delete($k);
}
$Memd::memd->nowait_push;
ok(not $another_memd->get($keys[$#keys]));