added test
This commit is contained in:
parent
ab0b1b645b
commit
79c72d1aef
@ -1535,4 +1535,74 @@ TEST_F(file_manager_test, remove_file_fails_if_provider_remove_file_fails) {
|
|||||||
|
|
||||||
EXPECT_EQ(api_error::item_not_found, fm.remove_file("/test_remove.txt"));
|
EXPECT_EQ(api_error::item_not_found, fm.remove_file("/test_remove.txt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(file_manager_test,
|
||||||
|
resize_greater_than_chunk_size_sets_new_chunks_to_read) {
|
||||||
|
cfg->set_enable_chunk_downloader_timeout(true);
|
||||||
|
|
||||||
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
|
polling::instance().start(cfg.get());
|
||||||
|
|
||||||
|
file_manager fm(*cfg, mp);
|
||||||
|
fm.start();
|
||||||
|
|
||||||
|
event_capture capture({
|
||||||
|
"item_timeout",
|
||||||
|
"filesystem_item_opened",
|
||||||
|
"filesystem_item_handle_opened",
|
||||||
|
"filesystem_item_handle_closed",
|
||||||
|
"filesystem_item_closed",
|
||||||
|
});
|
||||||
|
|
||||||
|
std::uint64_t handle{};
|
||||||
|
{
|
||||||
|
const auto source_path = utils::path::combine(
|
||||||
|
cfg->get_cache_directory(), {utils::create_uuid_string()});
|
||||||
|
|
||||||
|
std::shared_ptr<i_open_file> f;
|
||||||
|
|
||||||
|
const auto now = utils::time::get_time_now();
|
||||||
|
auto meta = create_meta_attributes(now, FILE_ATTRIBUTE_ARCHIVE, now + 1u,
|
||||||
|
now + 2u, false, 1, "key", 2, now + 3u,
|
||||||
|
3u, 4u, 0u, source_path, 10, now + 4u);
|
||||||
|
|
||||||
|
EXPECT_CALL(mp, create_file("/test_create.txt", meta))
|
||||||
|
.WillOnce(Return(api_error::success));
|
||||||
|
EXPECT_CALL(mp, get_filesystem_item)
|
||||||
|
.WillOnce([&meta](const std::string &api_path, bool directory,
|
||||||
|
filesystem_item &fsi) -> api_error {
|
||||||
|
EXPECT_STREQ("/test_create.txt", api_path.c_str());
|
||||||
|
EXPECT_FALSE(directory);
|
||||||
|
fsi.api_path = api_path;
|
||||||
|
fsi.api_parent = utils::path::get_parent_api_path(api_path);
|
||||||
|
fsi.directory = directory;
|
||||||
|
fsi.size = utils::string::to_uint64(meta[META_SIZE]);
|
||||||
|
fsi.source_path = meta[META_SOURCE];
|
||||||
|
return api_error::success;
|
||||||
|
});
|
||||||
|
|
||||||
|
#if defined(_WIN32)
|
||||||
|
EXPECT_EQ(api_error::success,
|
||||||
|
fm.create("/test_create.txt", meta, {}, handle, f));
|
||||||
|
#else
|
||||||
|
EXPECT_EQ(api_error::success,
|
||||||
|
fm.create("/test_create.txt", meta, O_RDWR, handle, f));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
f->resize(utils::encryption::encrypting_reader::get_data_chunk_size() *
|
||||||
|
4UL);
|
||||||
|
|
||||||
|
auto read_state = f->get_read_state();
|
||||||
|
EXPECT_TRUE(read_state.all());
|
||||||
|
}
|
||||||
|
|
||||||
|
fm.close(handle);
|
||||||
|
|
||||||
|
capture.wait_for_empty();
|
||||||
|
|
||||||
|
fm.stop();
|
||||||
|
|
||||||
|
polling::instance().stop();
|
||||||
|
}
|
||||||
} // namespace repertory
|
} // namespace repertory
|
||||||
|
Loading…
x
Reference in New Issue
Block a user