Newer
Older
libj / modules / j / base / test / src / ut_env.cpp
#include <iostream>
#include <j/cppunit/cppunit.hpp>
#include <j/cppunit/assert.hpp>

#include <j/lang/env.hpp>

using namespace j;
using namespace j::lang;
using namespace j::cppunit;

class EnvTest : public TestCase
{
public:
    EnvTest() {}
    ~EnvTest() {}
    void setUp() {}
    void tearDown()
    {
        Env::unset("TEST_ENV");
    }

    void testGet()
    {
        Env::set("TEST_ENV", "SAMPLE");
        String value = Env::get("TEST_ENV");
        assertEquals("SAMPLE", value);

        // = 以降は、キーとして無視される。
        value = Env::get("TEST_ENV=TEST");
        assertEquals("SAMPLE", value);
    }

    void testSet()
    {
        Env::set("TEST_ENV", "SAMPLE");
        String value = Env::get("TEST_ENV");
        assertEquals("SAMPLE", value);

        bool ret = Env::set("TEST_ENV", "SAMPLE2", true);
        assertTrue(ret);
        value = Env::get("TEST_ENV");
        assertEquals("SAMPLE2", value);

        ret = Env::set("TEST_ENV", "SAMPLE3", false);
        assertTrue(ret);
        value = Env::get("TEST_ENV");
        assertEquals("SAMPLE2", value);

        // = がキーに含まれるとエラー
        ret = Env::set("TEST_ENV2=TEST", "ERRVAL");
        assertFalse(ret);
        value = Env::get("TEST_ENV2");
        assertEquals(String(), value);
    }

    void testUnset()
    {
        Env::set("TEST_ENV", "SAMPLE", true);
        String value = Env::get("TEST_ENV");
        assertEquals("SAMPLE", value);

        Env::unset("TEST_ENV");

        value = Env::get("TEST_ENV");
        assertEquals(String(), value);
    }

    void suite()
    {
        RUN_TEST("Env::get", testGet);
        RUN_TEST("Env::set", testSet);
        RUN_TEST("Env::unset", testUnset);
    }
};