Skip to content

Commit fce4dde

Browse files
committed
test: add coverage for usize, isize, PathBuf FromValue impls
1 parent 6fdce73 commit fce4dde

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

prefer/src/value.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,4 +846,44 @@ mod tests {
846846
fn test_get_on_non_object() {
847847
assert!(int(42).get("key").is_none());
848848
}
849+
850+
#[test]
851+
fn test_from_value_usize() {
852+
// Valid positive integer
853+
assert_eq!(usize::from_value(&int(42)).unwrap(), 42);
854+
// Zero
855+
assert_eq!(usize::from_value(&int(0)).unwrap(), 0);
856+
// Negative value should fail
857+
assert!(usize::from_value(&int(-1)).is_err());
858+
// Non-integer should fail
859+
assert!(usize::from_value(&string("42")).is_err());
860+
}
861+
862+
#[test]
863+
fn test_from_value_isize() {
864+
// Positive integer
865+
assert_eq!(isize::from_value(&int(42)).unwrap(), 42);
866+
// Negative integer
867+
assert_eq!(isize::from_value(&int(-42)).unwrap(), -42);
868+
// Zero
869+
assert_eq!(isize::from_value(&int(0)).unwrap(), 0);
870+
// Non-integer should fail
871+
assert!(isize::from_value(&string("42")).is_err());
872+
}
873+
874+
#[test]
875+
fn test_from_value_pathbuf() {
876+
use std::path::PathBuf;
877+
878+
// Valid path string
879+
let path = PathBuf::from_value(&string("/home/user/config.toml")).unwrap();
880+
assert_eq!(path, PathBuf::from("/home/user/config.toml"));
881+
882+
// Empty string is valid
883+
let empty = PathBuf::from_value(&string("")).unwrap();
884+
assert_eq!(empty, PathBuf::from(""));
885+
886+
// Non-string should fail
887+
assert!(PathBuf::from_value(&int(42)).is_err());
888+
}
849889
}

0 commit comments

Comments
 (0)