File Coverage

blib/lib/Test/Data/Riak/Fast.pm
Criterion Covered Total %
statement 24 41 58.5
branch 1 4 25.0
condition 0 5 0.0
subroutine 8 13 61.5
pod 0 4 0.0
total 33 67 49.2


line stmt bran cond sub pod time code
1             package Test::Data::Riak::Fast;
2              
3 17     17   19169 use strict;
  17         30  
  17         611  
4 17     17   88 use warnings;
  17         30  
  17         459  
5              
6 17     17   4014 use Try::Tiny;
  17         7029  
  17         976  
7 17     17   89 use Test::More;
  17         27  
  17         104  
8 17     17   4199 use Digest::MD5 qw/md5_hex/;
  17         33  
  17         919  
9              
10 17     17   18418 use Sub::Exporter;
  17         288500  
  17         124  
11              
12 17     17   15052 use Data::Riak::Fast::HTTP;
  17         58  
  17         6800  
13              
14             my @exports = qw[
15             skip_unless_riak
16             skip_unless_leveldb
17             remove_test_bucket
18             create_test_bucket_name
19             ];
20              
21             Sub::Exporter::setup_exporter({
22             exports => \@exports,
23             groups => { default => \@exports }
24             });
25              
26             sub create_test_bucket_name {
27 0   0 0 0 0 my $prefix = shift || 'data-riak-test';
28 0         0 return $prefix . '-' . md5_hex(scalar localtime)
29             }
30              
31             sub skip_unless_riak {
32 17     17 0 5668 my $up = Data::Riak::Fast::HTTP->new->ping;
33 17 50       786 unless($up) {
34 17         118 plan skip_all => 'Riak did not answer, skipping tests'
35             };
36 0           return $up;
37             }
38              
39             sub skip_unless_leveldb {
40 0     0 0   my $storage_backend = Data::Riak::Fast->new(transport => Data::Riak::Fast::HTTP->new)->stats->{storage_backend};
41 0 0         if ($storage_backend ne 'riak_kv_eleveldb_backend') {
42 0           plan skip_all => 'Only storage_backend => riak_kv_eleveldb_backend'
43             };
44 0           return $storage_backend;
45             }
46              
47             sub remove_test_bucket {
48 0     0 0   my $bucket = shift;
49              
50             try {
51 0     0     $bucket->remove_all;
52 0           Test::More::diag "Removing test bucket so sleeping for a moment to allow riak to eventually be consistent ...";
53 0           my $keys = $bucket->list_keys;
54 0   0       while ( $keys && @$keys ) {
55 0           sleep(1);
56 0           $keys = $bucket->list_keys;
57             }
58             } catch {
59 0     0     is($_->value, "not found\n", "Bucket is now empty");
60 0           is($_->code, "404", "Calling list_keys on an empty bucket gives a 404");
61 0           };
62             }
63