Data-Riak
view release on metacpan or search on metacpan
t/async/bucket-simple.t view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use Try::Tiny;
use Test::Fatal;
use Test::More;
use Test::Data::Riak;
use AnyEvent;
use Data::Riak::Async;
use Data::Riak::Async::HTTP;
use Data::Riak::Async::Bucket;
skip_unless_riak;
my $riak = async_riak_transport;
my $bucket_name = create_test_bucket_name;
my $bucket = Data::Riak::Async::Bucket->new({
name => $bucket_name,
riak => $riak,
});
{
my $cv = AE::cv;
$bucket->count({
cb => sub { $cv->send(@_) },
error_cb => sub { $cv->croak(@_) },
});
is $cv->recv, 0, 'No keys in the bucket';
}
{
my $cv = AE::cv;
my $props = $bucket->props({
cb => sub { $cv->send(@_) },
error_cb => sub { $cv->croak(@_) },
});
is ref $cv->recv, 'HASH', '... got back a HASH ref';
}
{
my $cv = AE::cv;
$bucket->add('foo', 'bar', {
cb => sub { $cv->send },
error_cb => sub { $cv->croak(@_) },
});
$cv->recv;
}
my $obj = do {
my $cv = AE::cv;
$bucket->get('foo', {
cb => sub { $cv->send(@_) },
error_cb => sub { $cv->croak(@_) },
});
$cv->recv;
};
is $obj->value, 'bar', 'Check the value immediately after insertion';
is $obj->key, 'foo', 'Name property is inflated correctly';
is $obj->bucket_name, $bucket_name, 'Bucket name property is inflated correctly';
( run in 0.984 second using v1.01-cache-2.11-cpan-54e63673c56 )