more store test cleanups
[cloudstore.git] / t / Store.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 use Test::More tests => 8;
6 use Data::Dump qw(dump);
7
8 use lib 'lib';
9
10 use_ok 'CloudStore::Store';
11
12 my $data =
13 {
14   file       => "test/store",
15   itemize    => ">f+++++++++",
16   login      => "u2001",
17   md5        => "d8e8fca2dc0f896fd7cb4cb0031ba249",
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::Store->new('s1'), 'new';
32
33 ok my $u = $r->{api}->user_info('u2001'), 'user_info';
34
35 ok $r->init_pid_login( $data->{pid}, $data->{login} ), 'init_pid_login';
36
37 ok my $full_path = $r->blob_path( $data ), 'blob_path';
38 diag $full_path;
39
40 if ( ! -e $full_path ) {
41         $r->{api}->mkbasepath( $full_path, { uid => $u->{uid} } );
42         open(my $fh, '>', $full_path) || die $!;
43         print $fh "test\n" || die $!;
44         close $fh;
45         diag "$full_path created";
46         chown $u->{uid}, $u->{gid}, $full_path;
47 }
48
49 ok my $d = $r->rsync_transfer($data), 'rsync_transfer';
50 diag dump($d);
51
52 ok $r->removed_file($data), 'removed_file';
53
54 ok $r->cleanup_pid( $data->{pid} ), 'cleanup_pid';
55