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 )