nf7/core/uv/file_test.cc
2023-08-17 12:26:05 +09:00

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();
}