57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
// No copyright
|
|
#include "core/uv/file.hh"
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
#include <filesystem>
|
|
#include <fstream>
|
|
|
|
#include "core/uv/context_test.hh"
|
|
|
|
|
|
class UV_File : public nf7::core::uv::test::ContextFixture {
|
|
protected:
|
|
static constexpr const char* kTempFile =
|
|
"./.this_is_temporary_file_for_uv_file_unittest";
|
|
|
|
protected:
|
|
void TearDown() override {
|
|
ContextFixture::TearDown();
|
|
std::filesystem::remove(kTempFile);
|
|
}
|
|
};
|
|
|
|
TEST_F(UV_File, Open) {
|
|
auto sut = nf7::core::uv::File::Make(
|
|
*env_, kTempFile,
|
|
uvw::file_req::file_open_flags::RDWR
|
|
| uvw::file_req::file_open_flags::CREAT);
|
|
ctx_->Run();
|
|
EXPECT_TRUE(std::filesystem::exists(kTempFile));
|
|
}
|
|
|
|
TEST_F(UV_File, CancelOpen) {
|
|
auto sut = nf7::core::uv::File::Make(
|
|
*env_, kTempFile,
|
|
uvw::file_req::file_open_flags::RDWR
|
|
| uvw::file_req::file_open_flags::CREAT);
|
|
}
|
|
|
|
TEST_F(UV_File, FiniteSize) {
|
|
{
|
|
std::ofstream f {kTempFile};
|
|
f << "helloworld";
|
|
f.flush();
|
|
}
|
|
|
|
auto sut = nf7::core::uv::File::Make(
|
|
*env_, kTempFile,
|
|
uvw::file_req::file_open_flags::RDONLY);
|
|
|
|
sut->MakeFinite()->size()
|
|
.Then([](auto& v) { EXPECT_EQ(v, 10); })
|
|
.Catch([](const auto& e) { FAIL() << e; });
|
|
|
|
ctx_->Run();
|
|
}
|