From 97bc6137a333482c24ca9a56cdd79b3fcb38a4d1 Mon Sep 17 00:00:00 2001 From: Geert Bevin Date: Sun, 1 Jan 2023 17:13:28 -0500 Subject: [PATCH] Handle more invalid CLI argument usages. --- .../main/java/com/uwyn/urlencoder/UrlEncoder.java | 4 ++-- .../java/com/uwyn/urlencoder/UrlEncoderTest.java | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/src/main/java/com/uwyn/urlencoder/UrlEncoder.java b/lib/src/main/java/com/uwyn/urlencoder/UrlEncoder.java index 3fbcfe0..3486188 100644 --- a/lib/src/main/java/com/uwyn/urlencoder/UrlEncoder.java +++ b/lib/src/main/java/com/uwyn/urlencoder/UrlEncoder.java @@ -237,9 +237,9 @@ public final class UrlEncoder { var option = args.remove(0); if (option.equals("-d")) { perform_decode = true; - valid_arguments = !args.isEmpty(); + valid_arguments = (args.size() == 1); } else if (option.equals("-e")) { - valid_arguments = !args.isEmpty(); + valid_arguments = (args.size() == 1); } else { args.clear(); } diff --git a/lib/src/test/java/com/uwyn/urlencoder/UrlEncoderTest.java b/lib/src/test/java/com/uwyn/urlencoder/UrlEncoderTest.java index f0f67a7..a095b35 100644 --- a/lib/src/test/java/com/uwyn/urlencoder/UrlEncoderTest.java +++ b/lib/src/test/java/com/uwyn/urlencoder/UrlEncoderTest.java @@ -94,6 +94,20 @@ class UrlEncoderTest { assertTrue(result.output.contains("Usage :")); } + @Test + void testMainWrongArgs4() { + var result = UrlEncoder.processMain(new String[] {"-d", "stuff", "txt"}); + assertEquals(1, result.status); + assertTrue(result.output.contains("Usage :")); + } + + @Test + void testMainWrongArgs5() { + var result = UrlEncoder.processMain(new String[] {"-e", "stuff", "txt"}); + assertEquals(1, result.status); + assertTrue(result.output.contains("Usage :")); + } + @Test void testDecodeMainOption() { validMap.forEach((expected, source) -> {