From c86cd5cebabcaab7335bdc40c3a91cd107ab8728 Mon Sep 17 00:00:00 2001 From: Jeff Baskin Date: Tue, 21 Oct 2025 07:27:48 -0400 Subject: [PATCH] Forced names to remain lower case. --- src/message.rs | 82 +++++++++++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 35 deletions(-) diff --git a/src/message.rs b/src/message.rs index df1495b..b9e42ef 100644 --- a/src/message.rs +++ b/src/message.rs @@ -192,7 +192,7 @@ mod msgactions { #[test] fn turn_document_definition_into_action() { - let name = Name::english(Uuid::new_v4()); + let name = Name::english(Uuid::new_v4().to_string().as_str()); let value = DocDef::new(name.clone()); let result: MsgAction = value.into(); match result { @@ -545,28 +545,23 @@ struct Name { } impl Name { + fn new(name: &str, lang: Language) -> Self { + Self { + name: name.to_lowercase(), + lang: lang, + } + } + fn get_language(&self) -> &Language { &self.lang } - fn english(name: S) -> Self - where - S: Into, - { - Self { - name: name.into(), - lang: Language::from_639_1("en").unwrap(), - } + fn english(name: &str) -> Self { + Self::new(name, Language::from_639_1("en").unwrap()) } - fn japanese(name: S) -> Self - where - S: Into, - { - Self { - name: name.into(), - lang: Language::from_639_1("ja").unwrap(), - } + fn japanese(name: &str) -> Self { + Self::new(name, Language::from_639_1("ja").unwrap()) } } @@ -643,7 +638,9 @@ impl Names { if self.ids.contains_key(&data) { Ok(data) } else { - Err(MTTError::NameNotFound(Name::english(data))) + Err(MTTError::NameNotFound(Name::english( + data.to_string().as_str(), + ))) } } NameType::None => Err(MTTError::NameNotFound(Name::english("none"))), @@ -683,6 +680,15 @@ impl Names { mod names { use super::*; + #[test] + fn are_names_lowercase() { + let name1 = Name::new("session", Language::from_639_1("en").unwrap()); + let name2 = Name::new("Session", Language::from_639_1("en").unwrap()); + let name3 = Name::english("SESSION"); + assert_eq!(name1, name2); + assert_eq!(name1, name3); + } + #[test] fn are_name_ids_unique() { let mut names = Names::new(); @@ -1448,7 +1454,7 @@ mod queues { fn can_register_document_name() { let mut tester = TestQueue::new(); let mut queue = tester.get_queue(); - let doc_name = Name::english(Uuid::new_v4()); + let doc_name = Name::english(Uuid::new_v4().to_string().as_str()); let reg_msg = Register::new( tester.get_preset_id().clone(), RegMsg::AddDocName(doc_name.clone()), @@ -1472,7 +1478,7 @@ mod queues { let mut tester = TestQueue::new(); let mut queue = tester.get_queue(); let receiver = tester.get_preset_rx(); - let doc_name = Name::english(Uuid::new_v4()); + let doc_name = Name::english(Uuid::new_v4().to_string().as_str()); let reg_msg = Register::new( tester.get_preset_id().clone(), RegMsg::AddDocName(doc_name.clone()), @@ -2122,7 +2128,7 @@ mod additions { #[test] fn can_add_static_string() { let mut add = Addition::new(); - let name = Name::english(Uuid::new_v4()); + let name = Name::english(Uuid::new_v4().to_string().as_str()); let data = Uuid::new_v4().to_string(); add.add_field(name.clone(), data.clone()); let result = add.get_field(&name).unwrap(); @@ -2134,7 +2140,7 @@ mod additions { fn can_add_uuid() { let mut add = Addition::new(); - let name = Name::english(Uuid::new_v4()); + let name = Name::english(Uuid::new_v4().to_string().as_str()); let data = Uuid::new_v4(); add.add_field(name.clone(), data.clone()); let result = add.get_field(&name).unwrap(); @@ -2146,7 +2152,7 @@ mod additions { fn can_get_document() { let mut add = Addition::new(); - let name = Name::english(Uuid::new_v4()); + let name = Name::english(Uuid::new_v4().to_string().as_str()); let data = Uuid::new_v4(); add.add_field(name.clone(), data.clone()); let doc: Document = add.get_document(); @@ -2291,7 +2297,7 @@ mod docdefs { fn can_field_be_added() { let docname = Name::english("tester"); let mut docdef = DocDef::new(docname); - let name = Name::english(Uuid::new_v4()); + let name = Name::english(Uuid::new_v4().to_string().as_str()); let field_type = FieldType::Uuid; docdef.add_field(name.clone(), field_type.clone()); let result = docdef.get_field(name).unwrap(); @@ -2305,7 +2311,7 @@ mod docdefs { fn produces_error_for_bad_fields() { let docname = Name::english("tester"); let docdef = DocDef::new(docname); - let name = Name::english(Uuid::new_v4()); + let name = Name::english(Uuid::new_v4().to_string().as_str()); match docdef.get_field(&name) { Ok(_) => unreachable!("should return non existant field error"), Err(err) => match err { @@ -2370,7 +2376,7 @@ mod docdefs { fn does_set_default_value_error_on_bad_field_name() { let docname = Name::english("something"); let mut docdef = DocDef::new(docname); - let field_name = Name::english(Uuid::new_v4()); + let field_name = Name::english(Uuid::new_v4().to_string().as_str()); let mut calc = Calculation::new(Operand::Assign); calc.add_value(Uuid::new_v4()); match docdef.set_default(&field_name, calc) { @@ -2943,7 +2949,7 @@ mod queries { #[test] fn holds_calculation_to_run_query() { - let name = Name::english(Uuid::new_v4()); + let name = Name::english(Uuid::new_v4().to_string().as_str()); let data = Uuid::new_v4(); let mut bad_data = data.clone(); while bad_data == data { @@ -3220,13 +3226,13 @@ mod records { } let mut name_ids: HashMap = HashMap::new(); for id in ids.iter() { - let name = Name::english(id.clone()); + let name = Name::english(id.clone().to_string().as_str()); let field_id = names.add_name(name.clone()).unwrap(); name_ids.insert(name, field_id); } let mut rec = Record::new(names); for id in ids.iter() { - let name = Name::english(id.clone()); + let name = Name::english(id.clone().to_string().as_str()); rec.insert(name, id.clone()); } for (name, id) in name_ids.iter() { @@ -3321,7 +3327,7 @@ mod records { let count = 2; let mut recs: Vec = Vec::new(); for i in 0..count { - let name = Name::english(i.to_string()); + let name = Name::english(i.to_string().as_str()); let mut names = Names::new(); names.add_name(name); recs.push(Record::new(names)); @@ -3435,7 +3441,7 @@ mod documents { #[test] fn can_add_static_string() { let mut add = Document::new(); - let name = Name::english(Uuid::new_v4()); + let name = Name::english(Uuid::new_v4().to_string().as_str()); let data = Uuid::new_v4().to_string(); add.add_field(name.clone(), data.clone()); let result = add.get_field(&name).unwrap(); @@ -3447,7 +3453,7 @@ mod documents { fn can_add_uuid() { let mut add = Document::new(); - let name = Name::english(Uuid::new_v4()); + let name = Name::english(Uuid::new_v4().to_string().as_str()); let data = Uuid::new_v4(); add.add_field(name.clone(), data.clone()); let result = add.get_field(&name).unwrap(); @@ -4150,11 +4156,14 @@ mod document_files { impl TestDocument { fn new(field_types: Vec) -> Self { - let doc_name = Name::english(Uuid::new_v4()); + let doc_name = Name::english(Uuid::new_v4().to_string().as_str()); let mut docdef = DocDef::new(doc_name.clone()); let mut count = 0; for field_type in field_types.iter() { - docdef.add_field(Name::english(format!("field{}", count)), field_type.clone()); + docdef.add_field( + Name::english(format!("field{}", count).as_str()), + field_type.clone(), + ); count += 1; } let (tx, rx) = channel(); @@ -4217,7 +4226,10 @@ mod document_files { let mut add = Addition::new(); let mut count = 0; for item in data.iter() { - add.add_field(Name::english(format!("field{}", count)), item.clone()); + add.add_field( + Name::english(format!("field{}", count).as_str()), + item.clone(), + ); count += 1; } self.send(add).unwrap();