[Unit Test] Complete all providers unit tests #12
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good

This commit is contained in:
Scott E. Graves 2025-02-16 08:36:20 -06:00
parent 56072da7a6
commit a7580d9272
3 changed files with 25 additions and 10 deletions

View File

@ -285,8 +285,15 @@ auto base_provider::get_directory_items(const std::string &api_path,
if (res != api_error::success) {
return res;
}
if (not exists) {
return api_error::directory_not_found;
res = is_file(api_path, exists);
if (res != api_error::success) {
utils::error::raise_api_path_error(
function_name, api_path, res, "failed to determine if file exists");
}
return exists ? api_error::item_exists : api_error::directory_not_found;
}
res = get_directory_items_impl(api_path, list);

View File

@ -423,14 +423,7 @@ auto s3_provider::get_directory_items_impl(const std::string &api_path,
}
if (response_code == http_error_codes::not_found) {
bool exists{};
auto res = is_file(api_path, exists);
if (res != api_error::success) {
utils::error::raise_api_path_error(
function_name, api_path, res, "failed to determine if file exists");
}
return exists ? api_error::item_exists : api_error::directory_not_found;
return api_error::directory_not_found;
}
if (response_code != http_error_codes::ok) {

View File

@ -440,6 +440,21 @@ static void get_directory_item_count(const app_config & /* cfg */,
provider.get_api_path_from_source(source_path, api_path));
EXPECT_EQ(std::size_t(1U), provider.get_directory_item_count(api_path));
}
create_file(provider, "/pt01.txt");
create_file(provider, "/pt02.txt");
create_directory(provider, "/dir01");
create_directory(provider, "/dir02");
directory_item_list list{};
EXPECT_EQ(api_error::success, provider.get_directory_items("/", list));
check_forced_dirs(list);
EXPECT_GE(list.size(), std::size_t(6U));
EXPECT_EQ(api_error::success, provider.remove_file("/pt01.txt"));
EXPECT_EQ(api_error::success, provider.remove_file("/pt02.txt"));
EXPECT_EQ(api_error::success, provider.remove_directory("/dir01"));
EXPECT_EQ(api_error::success, provider.remove_directory("/dir02"));
}
static void get_directory_items(const app_config &cfg, i_provider &provider) {
@ -699,11 +714,11 @@ static void run_tests(const app_config &cfg, i_provider &provider) {
get_directory_items(cfg, provider);
get_directory_items_fails_if_directory_not_found(provider);
// TODO continue here
get_directory_items_fails_if_item_is_file(cfg, provider);
get_directory_item_count(cfg, provider);
// TODO continue here
get_file(cfg, provider);
get_file_fails_if_file_not_found(provider);
get_file_fails_if_item_is_directory(cfg, provider);