diff options
-rw-r--r-- | META.json | 1 | ||||
-rw-r--r-- | cpanfile | 1 | ||||
-rw-r--r-- | t/08_search_path.t | 39 | ||||
-rw-r--r-- | t/09_find_archives.t | 50 |
4 files changed, 91 insertions, 0 deletions
@@ -69,6 +69,7 @@ }, "test" : { "requires" : { + "Log::Any::Adapter::TAP" : "0", "Software::License::GPL_3" : "0", "Test::Differences" : "0", "Test::Exception" : "0", @@ -27,6 +27,7 @@ on configure => sub { }; on 'test' => sub { + requires 'Log::Any::Adapter::TAP'; requires 'Test::Differences'; requires 'Test::Exception'; requires 'Test::MockObject'; 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; |