From: Ian Jackson Date: Sat, 14 May 2022 14:18:18 +0000 (+0100) Subject: shapelib subst: Add test cases for subst() X-Git-Tag: otter-1.1.0~185 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=0e6c573edfd36ce522c9a5170781f81eba53c90b;p=otter.git shapelib subst: Add test cases for subst() Signed-off-by: Ian Jackson --- diff --git a/src/shapelib.rs b/src/shapelib.rs index 4de0d671..76e35f28 100644 --- a/src/shapelib.rs +++ b/src/shapelib.rs @@ -153,7 +153,7 @@ pub enum LibraryLoadMFIncompat { } pub use LibraryLoadMFIncompat as LLMI; -#[derive(Error,Copy,Clone,Debug)] +#[derive(Error,Copy,Clone,Debug,Eq,PartialEq)] pub enum SubstErrorKind { #[error("missing or unrecognised token {0}")] MissingToken (&'static str), #[error("repeated token {0}")] RepeatedToken(&'static str), @@ -1132,6 +1132,19 @@ fn subst(before: &str, needle: &'static str, replacement: &str) + rhs } +#[test] +fn test_subst() { + use SubstErrorKind as SEK; + assert_eq!(subst("a _colour die", "_colour", "blue").unwrap(), + "a blue die"); + assert_eq!(subst("a _colour die", "_colour", "").unwrap(), + "a die"); + assert_eq!(subst("a die", "_colour", "").unwrap_err().kind, + SEK::MissingToken("_colour")); + assert_eq!(subst("a _colour _colour die", "_colour", "").unwrap_err().kind, + SEK::RepeatedToken("_colour")); +} + #[throws(LibraryLoadError)] fn format_item_name(item_prefix: &str, fe: &FileData, item_suffix: &str) -> GoodItemName {