1
0
Files
YYCCommonplace/test/yycc/env.cpp

83 lines
2.1 KiB
C++
Raw Normal View History

2025-08-14 20:17:02 +08:00
#include <gtest/gtest.h>
#include <yycc.hpp>
#include <yycc/env.hpp>
2025-10-02 18:06:24 +08:00
#include <filesystem>
2025-08-14 20:17:02 +08:00
#define ENV ::yycc::env
2025-08-14 20:17:02 +08:00
namespace yycctest::env {
2025-08-14 20:17:02 +08:00
constexpr char8_t VAR_NAME[] = u8"HOMER";
constexpr char8_t VAR_VALUE[] = u8"doh";
TEST(Env, EnvVar) {
2025-08-14 20:17:02 +08:00
// Write a new variable should okey
{
auto rv = ENV::set_var(VAR_NAME, VAR_VALUE);
ASSERT_TRUE(rv.has_value());
}
// After writing, we can fetch it and check its value.
{
auto rv = ENV::get_var(VAR_NAME);
ASSERT_TRUE(rv.has_value());
EXPECT_EQ(rv.value(), VAR_VALUE);
}
// The we can delete it.
{
auto rv = ENV::del_var(VAR_NAME);
ASSERT_TRUE(rv.has_value());
}
// Delete inexisting variable also should be okey
{
auto rv = ENV::del_var(VAR_NAME);
ASSERT_TRUE(rv.has_value());
}
// After deleting, we can not fetch it anymore.
{
auto rv = ENV::get_var(VAR_NAME);
ASSERT_FALSE(rv.has_value());
}
}
TEST(Env, EnvVars) {
auto rv = ENV::get_vars();
ASSERT_TRUE(rv.has_value());
EXPECT_FALSE(rv.value().empty());
}
TEST(Env, CurrentDir) {
auto rv = ENV::current_dir();
ASSERT_TRUE(rv.has_value());
EXPECT_TRUE(std::filesystem::is_directory(rv.value()));
}
TEST(Env, CurrentExe) {
2025-10-02 18:06:24 +08:00
auto rv = ENV::current_exe();
ASSERT_TRUE(rv.has_value());
EXPECT_TRUE(std::filesystem::is_regular_file(rv.value()));
}
TEST(Env, HomeDir) {
auto rv = ENV::home_dir();
ASSERT_TRUE(rv.has_value());
EXPECT_TRUE(std::filesystem::is_directory(rv.value()));
}
2025-10-02 18:06:24 +08:00
TEST(Env, TempDir) {
auto rv = ENV::temp_dir();
ASSERT_TRUE(rv.has_value());
EXPECT_TRUE(std::filesystem::is_directory(rv.value()));
}
TEST(Env, EnvArgs) {
auto rv = ENV::get_args();
ASSERT_TRUE(rv.has_value());
EXPECT_FALSE(rv.value().empty());
2025-10-02 18:06:24 +08:00
}
} // namespace yycctest::env