use std::convert::TryFrom; use git_config::values::{Boolean, TrueVariant}; use crate::values::b; #[test]fn from_str_false() { assert_eq!(Boolean::try_from(b("no")), Ok(Boolean::False("no".into()))); assert_eq!(Boolean::try_from(b("off")), Ok(Boolean::False("off".into()))); assert_eq!(Boolean::try_from(b("false")), Ok(Boolean::False("false".into()))); assert_eq!(Boolean::try_from(b("zero")), Ok(Boolean::False("zero".into()))); assert_eq!(Boolean::try_from(b("\"\"")), Ok(Boolean::False("\"\"".into())));} #[test]fn from_str_true() { assert_eq!( Boolean::try_from(b("yes")), Ok(Boolean::True(TrueVariant::Explicit("yes".into()))) ); assert_eq!( Boolean::try_from(b("on")), Ok(Boolean::True(TrueVariant::Explicit("on".into()))) ); assert_eq!( Boolean::try_from(b("true")), Ok(Boolean::True(TrueVariant::Explicit("true".into()))) ); assert_eq!( Boolean::try_from(b("one")), Ok(Boolean::True(TrueVariant::Explicit("one".into()))) );} #[test]fn ignores_case() { // Random subset for word in &["no", "yes", "off", "true", "zero"] { let first: bool = Boolean::try_from(b(word)).unwrap().into(); let second: bool = Boolean::try_from(b(&*word.to_uppercase())).unwrap().into(); assert_eq!(first, second); }} #[test]fn from_str_err() { assert!(Boolean::try_from(b("yesn't")).is_err()); assert!(Boolean::try_from(b("yesno")).is_err());}
use std::convert::TryFrom;
use git_config::values::{Boolean, TrueVariant};
use crate::values::b;
#[test]
fn from_str_false() {
assert_eq!(Boolean::try_from(b("no")), Ok(Boolean::False("no".into())));
assert_eq!(Boolean::try_from(b("off")), Ok(Boolean::False("off".into())));
assert_eq!(Boolean::try_from(b("false")), Ok(Boolean::False("false".into())));
assert_eq!(Boolean::try_from(b("zero")), Ok(Boolean::False("zero".into())));
assert_eq!(Boolean::try_from(b("\"\"")), Ok(Boolean::False("\"\"".into())));
}
#[test]
fn from_str_true() {
assert_eq!(
Boolean::try_from(b("yes")),
Ok(Boolean::True(TrueVariant::Explicit("yes".into())))
);
assert_eq!(
Boolean::try_from(b("on")),
Ok(Boolean::True(TrueVariant::Explicit("on".into())))
);
assert_eq!(
Boolean::try_from(b("true")),
Ok(Boolean::True(TrueVariant::Explicit("true".into())))
);
assert_eq!(
Boolean::try_from(b("one")),
Ok(Boolean::True(TrueVariant::Explicit("one".into())))
);
}
#[test]
fn ignores_case() {
// Random subset
for word in &["no", "yes", "off", "true", "zero"] {
let first: bool = Boolean::try_from(b(word)).unwrap().into();
let second: bool = Boolean::try_from(b(&*word.to_uppercase())).unwrap().into();
assert_eq!(first, second);
}
}
#[test]
fn from_str_err() {
assert!(Boolean::try_from(b("yesn't")).is_err());
assert!(Boolean::try_from(b("yesno")).is_err());
}