MCPcopy Create free account
hub / github.com/Vulae/pkmc / command_parser_test

Function command_parser_test

pkmc-server/src/command.rs:346–379  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

344
345 #[test]
346 fn command_parser_test() -> Result<(), Box<dyn Error>> {
347 #[derive(Debug, PartialEq, Eq)]
348 struct TestCommand(bool);
349
350 impl CommandListener for TestCommand {
351 fn node() -> CommandNode {
352 CommandNode::new_literal("uwu")
353 }
354
355 type ParseArg = ();
356 fn try_parse(
357 parser: &mut CommandParser<'_>,
358 _arg: &Self::ParseArg,
359 ) -> Result<Option<Self>, CommandParseError> {
360 if parser.consume_literal("uwu").is_err() {
361 return Ok(None);
362 }
363 Ok(Some(Self(
364 parser.consume_until_space_or_end(false)? == "owo",
365 )))
366 }
367 }
368
369 let mut manager = CommandManager::default();
370 manager.register::<TestCommand>();
371
372 assert_eq!(Some(TestCommand(false)), manager.parse("uwu", &())?);
373 assert_eq!(Some(TestCommand(false)), manager.parse("uwu 0", &())?);
374 assert_eq!(Some(TestCommand(true)), manager.parse("uwu owo", &())?);
375 assert_eq!(None, manager.parse::<TestCommand>("uwu0", &())?);
376 assert_eq!(None, manager.parse::<TestCommand>("hello", &())?);
377
378 Ok(())
379 }
380}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected