From 0e6c573edfd36ce522c9a5170781f81eba53c90b Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 14 May 2022 15:18:18 +0100 Subject: [PATCH] shapelib subst: Add test cases for subst() Signed-off-by: Ian Jackson --- src/shapelib.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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 { -- 2.30.2