use std::env; use shiny_configuration::configuration_provider::ConfigurationProvider; use shiny_configuration::configuration_provider::env_provider::EnvironmentVariablesProvider; #[test] fn test_get() { env::set_var("TEST_1_ENV_VAR", "test_value"); env::set_var("TEST_2_ENV_VAR", "42"); env::set_var("TEST_3_ENV_VAR", "-42"); env::set_var("TEST_4_ENV_VAR", "42.1"); env::set_var("TEST_5_ENV_VAR", "true"); let provider = EnvironmentVariablesProvider::new(); let value = provider.provide(); assert_eq!(value.get("TEST_1_ENV_VAR").unwrap(), &"test_value".into()); assert_eq!(value.get("TEST_2_ENV_VAR").unwrap(), &(42u64).into()); assert_eq!(value.get("TEST_3_ENV_VAR").unwrap(), &(-42).into()); assert_eq!(value.get("TEST_4_ENV_VAR").unwrap(), &42.1.into()); assert_eq!(value.get("TEST_5_ENV_VAR").unwrap(), &true.into()); assert_eq!(value.get("__EMPTY_PLACEHOLDER_KEY"), None); } #[test] fn test_get_prefixed() { env::set_var("PREFIX_TEST_1_ENV_VAR", "test_value"); env::set_var("PREFIX_TEST_2_ENV_VAR", "42"); env::set_var("PREFIX_TEST_3_ENV_VAR", "-42"); env::set_var("PREFIX_TEST_4_ENV_VAR", "42.1"); env::set_var("PREFIX_TEST_5_ENV_VAR", "true"); let provider = EnvironmentVariablesProvider::prefixed("PREFIX_"); let value = provider.provide(); assert_eq!(value.get("TEST_1_ENV_VAR").unwrap(), &"test_value".into()); assert_eq!(value.get("TEST_2_ENV_VAR").unwrap(), &(42u64).into()); assert_eq!(value.get("TEST_3_ENV_VAR").unwrap(), &(-42i64).into()); assert_eq!(value.get("TEST_4_ENV_VAR").unwrap(), &42.1.into()); assert_eq!(value.get("TEST_5_ENV_VAR").unwrap(), &true.into()); assert_eq!(value.get("_EMPTY_PLACEHOLDER_KEY"), None); }