summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRyan Leckey <leckey.ryan@gmail.com>2018-03-12 11:10:01 -0700
committerGitHub <noreply@github.com>2018-03-12 11:10:01 -0700
commite8fa9fee96185ddd18ebcef8a925c75459111edb (patch)
tree02c7f66517f697d749653727611a74149dc49a32 /tests
parent1e16a3bfb7adab7f5e642759e94fb17cba1ea0bd (diff)
parent2fe18bbe8716402f6c56101ccbd55f5f1879d884 (diff)
Merge pull request #59 from ChriFo/fix/env
Adjust environment variable handling
Diffstat (limited to 'tests')
-rw-r--r--tests/env.rs63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/env.rs b/tests/env.rs
new file mode 100644
index 0000000..b204118
--- /dev/null
+++ b/tests/env.rs
@@ -0,0 +1,63 @@
+extern crate config;
+
+use config::*;
+use std::env;
+
+#[test]
+fn test_default() {
+ env::set_var("A_B_C", "abc");
+
+ let environment = Environment::new();
+
+ assert!(environment.collect().unwrap().contains_key("a_b_c"));
+
+ env::remove_var("A_B_C");
+}
+
+#[test]
+fn test_prefix_is_removed_from_key() {
+ env::set_var("B_A_C", "abc");
+
+ let environment = Environment::with_prefix("B");
+
+ assert!(environment.collect().unwrap().contains_key("a_c"));
+
+ env::remove_var("B_A_C");
+}
+
+#[test]
+fn test_prefix_with_variant_forms_of_spelling() {
+ env::set_var("a_A_C", "abc");
+
+ let environment = Environment::with_prefix("a");
+
+ assert!(environment.collect().unwrap().contains_key("a_c"));
+
+ env::remove_var("a_A_C");
+ env::set_var("aB_A_C", "abc");
+
+ let environment = Environment::with_prefix("aB");
+
+ assert!(environment.collect().unwrap().contains_key("a_c"));
+
+ env::remove_var("aB_A_C");
+ env::set_var("Ab_A_C", "abc");
+
+ let environment = Environment::with_prefix("ab");
+
+ assert!(environment.collect().unwrap().contains_key("a_c"));
+
+ env::remove_var("Ab_A_C");
+}
+
+#[test]
+fn test_separator_behavior() {
+ env::set_var("C_B_A", "abc");
+
+ let mut environment = Environment::with_prefix("C");
+ environment.separator("_");
+
+ assert!(environment.collect().unwrap().contains_key("b.a"));
+
+ env::remove_var("C_B_A");
+}