#include <string> #include <scpp_os.hpp> #include <scpp_unittest.hpp> #include <scpp_env.hpp> using namespace scpp; /*** * Env 単体テスト. */ class EnvTest : public TestCase { public: EnvTest() {} ~EnvTest() {} void testGetEnvExistsKey() { std::string buf; Env::setEnv("UT_KEY", "UT_VALUE"); bool ret = Env::getEnv(&buf, "UT_KEY"); Assertion::assertTrue(ret); Assertion::assertEquals("UT_VALUE", buf); } void testGetEnvNoExistsKey() { std::string buf; bool ret = Env::getEnv(&buf,"XXXXX_____NO___KEY_____"); Assertion::assertFalse(ret); Assertion::assertEquals("", buf); } void testGetEnvKeyIncludeEquals() { Env::setEnv("UT_KEY", "UT_VALUE"); std::string buf; bool ret = Env::getEnv(&buf,"UT_KEY=AAA"); Assertion::assertTrue(ret); Assertion::assertEquals("UT_VALUE", buf); } void testSetEnvKeyIncludeEquals() { bool ret = Env::setEnv("UT_KEY=A", "UT_VALUE"); Assertion::assertFalse(ret); } void testSetOverwrite() { std::string buf; // 一回目 bool ret = Env::setEnv("UT_KEY", "UT_VALUE"); Assertion::assertTrue(ret); ret = Env::getEnv(&buf, "UT_KEY"); Assertion::assertTrue(ret); Assertion::assertEquals("UT_VALUE", buf); // 上書き(上書き指定なし) ret = Env::setEnv("UT_KEY", "UT_VALUE_XXX"); Assertion::assertTrue(ret); ret = Env::getEnv(&buf, "UT_KEY"); Assertion::assertTrue(ret); Assertion::assertEquals("UT_VALUE", buf); // 上書き(上書き指定あり) ret = Env::setEnv("UT_KEY", "UT_VALUE_XXX", true); ret = Env::getEnv(&buf, "UT_KEY"); Assertion::assertTrue(ret); Assertion::assertEquals("UT_VALUE_XXX", buf); } void testUnset() { std::string buf; bool ret = Env::setEnv("UT_KEY", "UT_VALUE", true); Assertion::assertTrue(ret); ret = Env::getEnv(&buf, "UT_KEY"); Assertion::assertTrue(ret); Assertion::assertEquals("UT_VALUE", buf); Env::unsetEnv("UT_KEY"); ret = Env::getEnv(&buf, "UT_KEY"); Assertion::assertFalse(ret); } void suite() { RUN_TEST(testGetEnvExistsKey); RUN_TEST(testGetEnvNoExistsKey); RUN_TEST(testGetEnvKeyIncludeEquals); RUN_TEST(testSetEnvKeyIncludeEquals); RUN_TEST(testSetOverwrite); RUN_TEST(testUnset); } };