types.rs (1544B)
1 use radroots_types::types::{IError, IResult, IResultList, IResultPass}; 2 3 #[test] 4 fn error_wrapper_from_and_new_paths_are_exercised() { 5 let from_impl: IError<&str> = IError::from("boom"); 6 assert_eq!(from_impl.err, "boom"); 7 8 let via_new = IError::new("bad"); 9 assert_eq!(via_new.err, "bad"); 10 } 11 12 #[test] 13 fn result_wrapper_new_path_is_exercised() { 14 let out = IResult::new(42u32); 15 assert_eq!(out.result, 42); 16 } 17 18 #[test] 19 fn result_list_helpers_cover_empty_and_non_empty_branches() { 20 let empty = IResultList::<u32>::new(Vec::new()); 21 assert!(empty.is_empty()); 22 23 let non_empty = IResultList::new(vec![1u32, 2u32]); 24 assert!(!non_empty.is_empty()); 25 assert_eq!(non_empty.results, vec![1u32, 2u32]); 26 } 27 28 #[test] 29 fn result_pass_status_label_covers_both_branches() { 30 let pass = IResultPass::new(true); 31 let fail = IResultPass::new(false); 32 assert_eq!(pass.status_label(), "pass"); 33 assert_eq!(fail.status_label(), "fail"); 34 } 35 36 #[test] 37 fn serde_shapes_for_types_are_stable() { 38 let err = serde_json::to_value(IError::new("boom")).unwrap(); 39 assert_eq!(err, serde_json::json!({ "err": "boom" })); 40 41 let out = serde_json::to_value(IResult::new(7u32)).unwrap(); 42 assert_eq!(out, serde_json::json!({ "result": 7 })); 43 44 let list = serde_json::to_value(IResultList::new(vec!["a", "b"])).unwrap(); 45 assert_eq!(list, serde_json::json!({ "results": ["a", "b"] })); 46 47 let pass = serde_json::to_value(IResultPass::new(true)).unwrap(); 48 assert_eq!(pass, serde_json::json!({ "pass": true })); 49 }