From d201df23d920e0f481895ce933f3c35fff708150 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Sun, 19 Aug 2018 11:16:46 +0200 Subject: Add search_path and find_archives integration tests Signed-off-by: Florian Pritz --- t/08_search_path.t | 39 +++++++++++++++++++++++++++++++++++++++ t/09_find_archives.t | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 t/08_search_path.t create mode 100644 t/09_find_archives.t (limited to 't') diff --git a/t/08_search_path.t b/t/08_search_path.t new file mode 100644 index 0000000..ef6901c --- /dev/null +++ b/t/08_search_path.t @@ -0,0 +1,39 @@ +use strict; +use warnings; + +use Test::More; +use Test::MockObject; +use Test::Differences; + +use App::BorgRestore; +use App::BorgRestore::DB; +use Log::Any::Adapter ('TAP'); + +my $db = App::BorgRestore::DB->new(":memory:", 0); +my $app = App::BorgRestore->new_no_defaults({db => $db}); + +$db->add_archive_name("test1"); +my $archive_id1 = $db->get_archive_id("test1"); +$db->add_archive_name("test2"); +my $archive_id2 = $db->get_archive_id("test2"); +$db->add_archive_name("test3"); +my $archive_id3 = $db->get_archive_id("test3"); +$db->add_archive_name("test4"); +my $archive_id4 = $db->get_archive_id("test4"); + +$db->add_path($archive_id1, "test/path", 5); +$db->add_path($archive_id1, "test/foo", 4); +$db->add_path($archive_id1, "test", 5); + +$db->add_path($archive_id2, "test/path", 5); +$db->add_path($archive_id2, "test", 5); + +$db->add_path($archive_id3, "test/path", 10); +$db->add_path($archive_id3, "test/foo", 4); +$db->add_path($archive_id3, "test", 10); + +eq_or_diff($app->search_path("test"), ['test', 'test/foo', 'test/path']); +eq_or_diff($app->search_path("test%"), ['test', 'test/foo', 'test/path']); +eq_or_diff($app->search_path("%foo"), ['test/foo']); + +done_testing; diff --git a/t/09_find_archives.t b/t/09_find_archives.t new file mode 100644 index 0000000..eebea6c --- /dev/null +++ b/t/09_find_archives.t @@ -0,0 +1,50 @@ +use strict; +use warnings; + +use Test::More; +use Test::MockObject; +use Test::Differences; +use Test::Exception; + +use App::BorgRestore; +use App::BorgRestore::DB; +use Log::Any::Adapter ('TAP'); + +my $db = App::BorgRestore::DB->new(":memory:", 0); + +my $app = App::BorgRestore->new_no_defaults({db => $db}); + +$db->add_archive_name("test1"); +my $archive_id1 = $db->get_archive_id("test1"); +$db->add_archive_name("test2"); +my $archive_id2 = $db->get_archive_id("test2"); +$db->add_archive_name("test3"); +my $archive_id3 = $db->get_archive_id("test3"); +$db->add_archive_name("test4"); +my $archive_id4 = $db->get_archive_id("test4"); + +$db->add_path($archive_id1, "test/path", 5); +$db->add_path($archive_id1, "test/foo", 4); +$db->add_path($archive_id1, "test", 5); + +$db->add_path($archive_id2, "test/path", 5); +$db->add_path($archive_id2, "test", 5); + +$db->add_path($archive_id3, "test/path", 10); +$db->add_path($archive_id3, "test/foo", 4); +$db->add_path($archive_id3, "test", 10); + +eq_or_diff($app->find_archives('test/path'), [ + { + archive => 'test1', + modification_time => 5 + }, + { + archive => 'test3', + modification_time => 10 + }, + ]); + +dies_ok {$app->find_archives('test/nope')}; + +done_testing; -- cgit v1.2.3-24-g4f1b