Add auth bits to Blerg::Database
[blerg.git] / lib / perl / Blerg-Database / t / subscription.t
1 use File::Path qw/remove_tree/;
2 use strict;
3 use warnings;
4
5 use Test::More tests => 10;
6 BEGIN { use_ok('Blerg::Database') };
7
8 ### Setup
9 my $test_dir = "/tmp/blerg_test_$$";
10 mkdir $test_dir;
11 chdir $test_dir;
12 mkdir 'data';
13 mkdir 'hash_tags';
14 mkdir 'ref_tags';
15 my ($ptra, $ptrb, @list);
16
17 ### Subscription
18 $ptra = Blerg::Database::_open("a");
19 $ptrb = Blerg::Database::_open("b");
20 ok( Blerg::Database::subscription_add("a", "b") == 1 );
21 Blerg::Database::_store($ptrb, "Hello, A!");
22 @list = Blerg::Database::_subscription_list("a", 0, 1);
23 ok( @list == 1 );
24 ok( $list[0]->{author} eq 'b' );
25 ok( $list[0]->{record} == 0 );
26 ok( Blerg::Database::_fetch($ptrb, $list[0]->{record}) eq 'Hello, A!' );
27
28 ### Subscription OO-style
29 $ptra = Blerg::Database->open_existing('a');
30 $ptrb = Blerg::Database->open_existing('b');
31 @list = $ptra->subscription_list;
32 ok( @list == 1 );
33 ok( $list[0]->{author} eq 'b' );
34 ok( $list[0]->{record} == 0 );
35 ok( $ptrb->fetch($list[0]->{record}) eq 'Hello, A!' );
36 $ptrb->close;
37 $ptra->close;
38
39 END {
40         chdir;
41         remove_tree "/tmp/blerg_test_$$";
42 }