extract MD5sum handling using TokyoCabinet
[cloudstore.git] / t / Couchbase.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 use Test::More tests => 15;
6 use Data::Dump qw(dump);
7
8 use lib 'lib';
9
10 use_ok 'CloudStore::Couchbase';
11
12 my $data =
13 {
14   file       => "dir-test/bar",
15   itemize    => ">f+++++++++",
16   login      => "test",
17   md5        => "51ce99ec40129bfe1fd11d65b346d15e",
18   mtime      => "2011-07-17T17:55:15",
19   op         => "recv",
20   perms      => "rw-r--r--",
21   pid        => 29525,
22   port       => 6501,
23   size       => 10024,
24   timestamp  => "2011-07-17T17:55:15",
25   transfered => 10064,
26 };
27
28 my $user =
29 { login => 'test', quota => 12000 };
30
31 ok my $r = CloudStore::Couchbase->new, 'new';
32
33 ok $r->user_set($user), 'user_set';
34 is_deeply $r->user_get($user->{login}), $user, 'user_get';
35
36 ok $r->status('test' => 'start test'), 'status set';
37 ok my $s = $r->status('test'), 'status get';
38 diag $s;
39
40 ok($r->usage_init({ login => 'test' }), 'usage_init' );
41 cmp_ok($r->{session}->get('test:usage'), '==',0, 'usage');
42
43 ok my $j = $r->file_set($data), 'file_set';
44
45 ok( my $f = $r->file_get($data), 'file_get' );
46 diag 'file ',dump $f, $data;
47 is_deeply $f, $data, 'same';
48
49 ok( my $u = $r->usage_incr($data), 'usage_incr' );
50 diag $u;
51
52 ok( my $u2 = $r->usage($data), 'usage' );
53 cmp_ok $u2, '==', $data->{size}, 'usage correct';
54
55 cmp_ok( $r->usage_decr($data), '==', 0, 'usage_decr' );
56
57 ok my $d = $r->transfer($data), 'transfer';
58 diag dump($d);
59
60 ok($r->remove_file($data), 'remove_file');