Add subscription support to perl lib
[blerg.git] / lib / perl / Blerg-Database / t / Blerg-Database.t
index eebfbae..b64e40e 100644 (file)
@@ -9,7 +9,7 @@ use File::Path qw/remove_tree/;
 use strict;
 use warnings;
 
-use Test::More tests => 25;
+use Test::More tests => 30;
 BEGIN { use_ok('Blerg::Database') };
 
 #########################
@@ -19,9 +19,12 @@ BEGIN { use_ok('Blerg::Database') };
 
 # Setup
 my $test_user = 'barfy';
-chdir '../../..';
-remove_tree "data/$test_user";
-remove_tree "hash_tags/data";
+my $test_dir = "/tmp/blerg_test_$$";
+mkdir $test_dir;
+chdir $test_dir;
+mkdir 'data';
+mkdir 'hash_tags';
+mkdir 'ref_tags';
 my ($ptr, @list, $n);
 $n = 0;
 
@@ -49,8 +52,17 @@ ok( not defined Blerg::Database::_fetch($ptr, $n + 1) );
 my $t = Blerg::Database::_get_timestamp($ptr, $n);
 ok( $t0 - $t <= 1.0 );
 
-# Will have to test subscription bits after the Subscription module is
-# made
+# Subscription
+my ($ptra, $ptrb);
+$ptra = Blerg::Database::_open("a");
+$ptrb = Blerg::Database::_open("b");
+ok( Blerg::Database::subscription_add("a", "b") == 1 );
+Blerg::Database::_store($ptrb, "Hello, A!");
+@list = Blerg::Database::subscription_list("a", 0, 1);
+ok( @list == 1 );
+ok( $list[0]->{author} eq 'b' );
+ok( $list[0]->{record} == 0 );
+ok( Blerg::Database::_fetch($ptrb, $list[0]->{record}) eq 'Hello, A!' );
 
 # Test tags
 Blerg::Database::_store($ptr, "This is data A #data");
@@ -98,3 +110,7 @@ ok( $blerg->store($data) == $n + 1 );
 $n++;
 ok( $blerg->fetch($n) eq $data );
 
+END {
+       chdir;
+       remove_tree "/tmp/blerg_test_$$";
+}