+class EnvVarSaverTest : public testing::Test {};
+
+TEST_F(EnvVarSaverTest, ExampleNew) {
+ auto key = "hahahahaha";
+ EXPECT_EQ(nullptr, getenv(key));
+
+ auto saver = make_unique<EnvVarSaver>();
+ PCHECK(0 == setenv(key, "blah", true));
+ EXPECT_EQ("blah", std::string{getenv(key)});
+ saver = nullptr;
+ EXPECT_EQ(nullptr, getenv(key));
+}
+
+TEST_F(EnvVarSaverTest, ExampleExisting) {
+ auto key = "USER";
+ EXPECT_NE(nullptr, getenv(key));
+ auto value = std::string{getenv(key)};
+
+ auto saver = make_unique<EnvVarSaver>();
+ PCHECK(0 == setenv(key, "blah", true));
+ EXPECT_EQ("blah", std::string{getenv(key)});
+ saver = nullptr;
+ EXPECT_TRUE(value == getenv(key));
+}
+
+TEST_F(EnvVarSaverTest, ExampleDeleting) {
+ auto key = "USER";
+ EXPECT_NE(nullptr, getenv(key));
+ auto value = std::string{getenv(key)};
+
+ auto saver = make_unique<EnvVarSaver>();
+ PCHECK(0 == unsetenv(key));
+ EXPECT_EQ(nullptr, getenv(key));
+ saver = nullptr;
+ EXPECT_TRUE(value == getenv(key));
+}
+