summaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rw-r--r--t/handle_added_archives_with_db.t49
1 files changed, 49 insertions, 0 deletions
diff --git a/t/handle_added_archives_with_db.t b/t/handle_added_archives_with_db.t
index 2e222b3..6fd94ea 100644
--- a/t/handle_added_archives_with_db.t
+++ b/t/handle_added_archives_with_db.t
@@ -42,6 +42,7 @@ for my $in_memory (0,1) {
$app->_handle_added_archives(['archive-1']);
# check database content
+ is($db->get_archive_row_count(), 15, 'correct row count (15 paths with timestamps)');
eq_or_diff($db->get_archives_for_path('.'), [{archive => 'archive-1', modification_time => undef},]);
eq_or_diff($db->get_archives_for_path('boot'), [{archive => 'archive-1', modification_time => 20},]);
eq_or_diff($db->get_archives_for_path('boot/foo'), [{archive => 'archive-1', modification_time => 19},]);
@@ -85,6 +86,7 @@ for my $in_memory (0,1) {
$app->_handle_added_archives(['archive-2']);
# check database content
+ is($db->get_archive_row_count(), 16, 'correct row count (16 paths with timestamps)');
eq_or_diff($db->get_archives_for_path('.'), [
{archive => 'archive-1', modification_time => undef},
{archive => 'archive-2', modification_time => undef},
@@ -162,6 +164,7 @@ for my $in_memory (0,1) {
$app->_handle_removed_archives(['archive-2']);
# check database contents
+ is($db->get_archive_row_count(), 15, 'correct row count (15 paths with timestamps)');
eq_or_diff($db->get_archives_for_path('.'), [{archive => 'archive-2', modification_time => undef},]);
eq_or_diff($db->get_archives_for_path('boot'), [{archive => 'archive-2', modification_time => 20},]);
eq_or_diff($db->get_archives_for_path('boot/foo'), [{archive => 'archive-2', modification_time => 19},]);
@@ -180,6 +183,52 @@ for my $in_memory (0,1) {
eq_or_diff($db->get_archives_for_path('etc/foo/bar'), [{archive => 'archive-2', modification_time => 1},]);
eq_or_diff($db->get_archives_for_path('etc/foo/blub'), [{archive => 'archive-2', modification_time => undef},]);
eq_or_diff($db->get_archives_for_path('lulz'), [{archive => 'archive-2', modification_time => undef},], 'test non-existant path');
+
+ # run remove again. shouldn't change anything
+ $app->_handle_removed_archives(['archive-2']);
+ is($db->get_archive_row_count(), 15, 'correct row count (15 paths with timestamps)');
+ eq_or_diff($db->get_archives_for_path('.'), [{archive => 'archive-2', modification_time => undef},]);
+ eq_or_diff($db->get_archives_for_path('boot'), [{archive => 'archive-2', modification_time => 20},]);
+ eq_or_diff($db->get_archives_for_path('boot/foo'), [{archive => 'archive-2', modification_time => 19},]);
+ eq_or_diff($db->get_archives_for_path('boot/foo/bar'), [{archive => 'archive-2', modification_time => 19},]);
+ eq_or_diff($db->get_archives_for_path('boot/foo/blub'), [{archive => 'archive-2', modification_time => 13},]);
+ eq_or_diff($db->get_archives_for_path('boot/grub'), [{archive => 'archive-2', modification_time => 20},]);
+ eq_or_diff($db->get_archives_for_path('boot/grub/grub.cfg'), [{archive => 'archive-2', modification_time => 8},]);
+ eq_or_diff($db->get_archives_for_path('boot/test1'), [{archive => 'archive-2', modification_time => 7},]);
+ eq_or_diff($db->get_archives_for_path('boot/test1/f1'), [{archive => 'archive-2', modification_time => 3},]);
+ eq_or_diff($db->get_archives_for_path('boot/test1/f2'), [{archive => 'archive-2', modification_time => 5},]);
+ eq_or_diff($db->get_archives_for_path('boot/test1/f3'), [{archive => 'archive-2', modification_time => 3},]);
+ eq_or_diff($db->get_archives_for_path('boot/test1/f4'), [{archive => 'archive-2', modification_time => 2},]);
+ eq_or_diff($db->get_archives_for_path('boot/test1/f5'), [{archive => 'archive-2', modification_time => 7},]);
+ eq_or_diff($db->get_archives_for_path('etc'), [{archive => 'archive-2', modification_time => 3},]);
+ eq_or_diff($db->get_archives_for_path('etc/foo'), [{archive => 'archive-2', modification_time => 2},]);
+ eq_or_diff($db->get_archives_for_path('etc/foo/bar'), [{archive => 'archive-2', modification_time => 1},]);
+ eq_or_diff($db->get_archives_for_path('etc/foo/blub'), [{archive => 'archive-2', modification_time => undef},]);
+ eq_or_diff($db->get_archives_for_path('lulz'), [{archive => 'archive-2', modification_time => undef},], 'test non-existant path');
+
+ # remove all archives from db (no overlap between archives in db and "current" archives)
+ $app->_handle_removed_archives(['archive-3']);
+
+ # check database contents
+ is($db->get_archive_row_count(), 0, 'db should be empty');
+ eq_or_diff($db->get_archives_for_path('.'), []);
+ eq_or_diff($db->get_archives_for_path('boot'), []);
+ eq_or_diff($db->get_archives_for_path('boot/foo'), []);
+ eq_or_diff($db->get_archives_for_path('boot/foo/bar'), []);
+ eq_or_diff($db->get_archives_for_path('boot/foo/blub'), []);
+ eq_or_diff($db->get_archives_for_path('boot/grub'), []);
+ eq_or_diff($db->get_archives_for_path('boot/grub/grub.cfg'), []);
+ eq_or_diff($db->get_archives_for_path('boot/test1'), []);
+ eq_or_diff($db->get_archives_for_path('boot/test1/f1'), []);
+ eq_or_diff($db->get_archives_for_path('boot/test1/f2'), []);
+ eq_or_diff($db->get_archives_for_path('boot/test1/f3'), []);
+ eq_or_diff($db->get_archives_for_path('boot/test1/f4'), []);
+ eq_or_diff($db->get_archives_for_path('boot/test1/f5'), []);
+ eq_or_diff($db->get_archives_for_path('etc'), []);
+ eq_or_diff($db->get_archives_for_path('etc/foo'), []);
+ eq_or_diff($db->get_archives_for_path('etc/foo/bar'), []);
+ eq_or_diff($db->get_archives_for_path('etc/foo/blub'), []);
+ eq_or_diff($db->get_archives_for_path('lulz'), []);
}