Sha256: 3ffdbb2e03f14f0a42d5e215bb3af5c295abd5519de04199213c5f123bacb284
Contents?: true
Size: 1.67 KB
Versions: 16
Compression:
Stored size: 1.67 KB
Contents
#include <catch.hpp> #include <leatherman/util/environment.hpp> #include <leatherman/util/scoped_env.hpp> using namespace std; using namespace leatherman::util; SCENARIO("scoping an environment variable") { string value; REQUIRE_FALSE(environment::get("LEATH_ENV_TEST", value)); REQUIRE(value.empty()); WHEN("the variable does not exist") { AND_WHEN("the variable is scoped") { scoped_env foo("LEATH_ENV_TEST", "FOO"); THEN("the new value is set") { REQUIRE(environment::get("LEATH_ENV_TEST", value)); REQUIRE(value == "FOO"); } } AND_WHEN("the variable is scoped as unset") { scoped_env foo("LEATH_ENV_TEST"); THEN("the variable is not set") { REQUIRE_FALSE(environment::get("LEATH_ENV_TEST", value)); } } } WHEN("the variable exists") { environment::set("LEATH_ENV_TEST", "bar"); AND_WHEN("the variable is scoped") { scoped_env foo("LEATH_ENV_TEST", "FOO"); THEN("the new value is set") { REQUIRE(environment::get("LEATH_ENV_TEST", value)); REQUIRE(value == "FOO"); } } AND_WHEN("the variable is scoped as unset") { scoped_env foo("LEATH_ENV_TEST"); THEN("the variable is not set") { REQUIRE_FALSE(environment::get("LEATH_ENV_TEST", value)); } } THEN("the variable should be restored") { REQUIRE(environment::get("LEATH_ENV_TEST", value)); REQUIRE(value == "bar"); } environment::clear("LEATH_ENV_TEST"); } }
Version data entries
16 entries across 16 versions & 2 rubygems