From d18ccc3132b6320dc2f429981c35ad83b491d7d8 Mon Sep 17 00:00:00 2001 From: Ismay Jane Gay Date: Fri, 8 Mar 2019 01:50:36 -0800 Subject: [PATCH] Provide default values for optional cli args --- src/main/java/exercise/nio/chat/server/Server.java | 12 ++++++------ .../exercise/nio/chat/server/data/storage/MapDBStorage.java | 5 ++++- src/test/java/exercise/nio/chat/server/ServerTest.java | 7 ++++--- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/exercise/nio/chat/server/Server.java b/src/main/java/exercise/nio/chat/server/Server.java index 7397b63..b864779 100644 --- a/src/main/java/exercise/nio/chat/server/Server.java +++ b/src/main/java/exercise/nio/chat/server/Server.java @@ -165,14 +165,15 @@ public class Server { mixinStandardHelpOptions = true, version = "Simple chat server 0.0.1") protected static class ServerOptions implements Callable { @Option(names = {"-a", "--address"}, paramLabel = "ADDRESS", - description = "server address") - private String address; + description = "server address (default: ${DEFAULT-VALUE})") + private String address = TEST_ADDRESS; @Option(names = {"-p", "--port"}, paramLabel = "PORT", required = true, description = "server port") private int port; @Option(names = {"-f", "--dbFile"}, paramLabel = "DB_FILE", - description = "path to a file where the chat db is stored") - private String dbFile; + description = "path to a file where the chat db is stored " + + "(default: ${DEFAULT-VALUE})") + private String dbFile = MapDBStorage.getDbFile(); public String getAddress() { return address; @@ -191,8 +192,7 @@ public class Server { if (null != dbFile) { MapDBStorage.setDbFile(dbFile); } - return new Server(null == address ? TEST_ADDRESS : address, - port, true); + return new Server(address, port, true); } } diff --git a/src/main/java/exercise/nio/chat/server/data/storage/MapDBStorage.java b/src/main/java/exercise/nio/chat/server/data/storage/MapDBStorage.java index 501dc69..e5d73cb 100644 --- a/src/main/java/exercise/nio/chat/server/data/storage/MapDBStorage.java +++ b/src/main/java/exercise/nio/chat/server/data/storage/MapDBStorage.java @@ -83,7 +83,7 @@ public class MapDBStorage { } /** - * @return the db file or null if not yet initialized + * @return the db file */ public static String getDbFile() { return DB_FILE.get(); @@ -95,6 +95,9 @@ public class MapDBStorage { * @throws IllegalArgumentException if the instance is already initialized */ public static void setDbFile(String file) { + if (null == file) { + throw new IllegalArgumentException("db file cannot be null"); + } if (null != INSTANCE.get()) { throw new IllegalArgumentException(DB_FILE_INIT_ERROR_MSG); } diff --git a/src/test/java/exercise/nio/chat/server/ServerTest.java b/src/test/java/exercise/nio/chat/server/ServerTest.java index 5226f37..dab163c 100644 --- a/src/test/java/exercise/nio/chat/server/ServerTest.java +++ b/src/test/java/exercise/nio/chat/server/ServerTest.java @@ -1,7 +1,6 @@ package exercise.nio.chat.server; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; import java.util.Random; @@ -15,12 +14,14 @@ public class ServerTest { @Test public void testCliParsing() { final Server.ServerOptions opts = new Server.ServerOptions(); final Server s = CommandLine.call(opts, new String[] {"-p", "3336"}); - assertNull("opts address should be set to null", opts.getAddress()); + assertEquals("opts address should be set to default", + Server.TEST_ADDRESS, opts.getAddress()); assertEquals("server address should be set to default", Server.TEST_ADDRESS, s.getAddress()); assertEquals("opts port should be set to 3336", 3336, opts.getPort()); assertEquals("server port should be set to 3336", 3336, s.getPort()); - assertNull("opts dbFile should be set to null", opts.getDbFile()); + assertEquals("opts dbFile should be set to default", + MapDBStorage.TESTING_DB_FILE, opts.getDbFile()); assertEquals("db file should be set to default", MapDBStorage.TESTING_DB_FILE, MapDBStorage.getDbFile()); } -- 2.11.4.GIT