add blerg_init to blerg.a consumers
[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
16 $ENV{BLERG_PATH} = $test_dir;
17 Blerg::Database::init();
18
19 my ($ptra, $ptrb, @list);
20
21 ### Subscription
22 $ptra = Blerg::Database::_open("a");
23 $ptrb = Blerg::Database::_open("b");
24 ok( Blerg::Database::subscription_add("a", "b") == 1 );
25 Blerg::Database::_store($ptrb, "Hello, A!");
26 @list = Blerg::Database::_subscription_list("a", 0, 1);
27 ok( @list == 1 );
28 ok( $list[0]->{author} eq 'b' );
29 ok( $list[0]->{record} == 0 );
30 ok( Blerg::Database::_fetch($ptrb, $list[0]->{record}) eq 'Hello, A!' );
31
32 ### Subscription OO-style
33 $ptra = Blerg::Database->open_existing('a');
34 $ptrb = Blerg::Database->open_existing('b');
35 @list = $ptra->subscription_list;
36 ok( @list == 1 );
37 ok( $list[0]->{author} eq 'b' );
38 ok( $list[0]->{record} == 0 );
39 ok( $ptrb->fetch($list[0]->{record}) eq 'Hello, A!' );
40 $ptrb->close;
41 $ptra->close;
42
43 END {
44         chdir;
45         remove_tree "/tmp/blerg_test_$$";
46 }