From 81c6cc701039a69f287f404fb8d99e77feeaa622 Mon Sep 17 00:00:00 2001 From: "Tristan B. Velloza Kildaire" Date: Thu, 6 Jul 2023 19:25:28 +0200 Subject: [PATCH] Unoit tests (`messages`) - Test the `ChecksMode.HARDCORE` and `ChecksMode.EASY` integration of `Message`'s `encode(ChecksMode)` function --- source/birchwood/protocol/messages.d | 42 ++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/source/birchwood/protocol/messages.d b/source/birchwood/protocol/messages.d index ee4f330..85b351a 100644 --- a/source/birchwood/protocol/messages.d +++ b/source/birchwood/protocol/messages.d @@ -615,6 +615,8 @@ version(unittest) // Contains illegal characters string badString1 = "doos"~"bruh"~"lek"~cast(string)[10]~"ker"; string badString2 = "doos"~"bruh"~"lek"~cast(string)[13]~"ker"; + + import birchwood.config.conninfo : ChecksMode; } /** @@ -636,4 +638,44 @@ unittest { assert(Message.hasIllegalCharacters(Message.stripIllegalCharacters(badString1)) == false); assert(Message.hasIllegalCharacters(Message.stripIllegalCharacters(badString2)) == false); +} + +/** + * Tests the ability, at the `Message`-level, to detect + * illegal characters and automatically strip them when + * in `ChecksMode.EASY` + */ +unittest +{ + Message message = new Message(badString1, "fine", "fine"); + + try + { + string encoded = message.encode(ChecksMode.EASY); + assert(Message.hasIllegalCharacters(encoded) == false); + } + catch(BirchwoodException e) + { + assert(false); + } +} + +/** + * Tests the ability, at the `Message`-level, to detect + * illegal characters and throw an exception when in + * `ChecksMode.HARDCORE` + */ +unittest +{ + Message message = new Message(badString1, "fine", "fine"); + + try + { + message.encode(ChecksMode.EASY); + assert(false); + } + catch(BirchwoodException e) + { + assert(e.getType() == ErrorType.ILLEGAL_CHARACTERS); + } } \ No newline at end of file