From 970f72099dcfcfe37ecdabdae8fe32afdd82a68b Mon Sep 17 00:00:00 2001 From: Tan Jin Date: Tue, 23 Mar 2021 22:13:22 +0800 Subject: [PATCH 1/5] Chore: add test cases for SendCommand --- .../us/among/logic/commands/SendCommand.java | 2 +- .../among/logic/commands/SendCommandTest.java | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/us/among/logic/commands/SendCommand.java b/src/main/java/seedu/us/among/logic/commands/SendCommand.java index 91a07901f6a..411d9952b15 100644 --- a/src/main/java/seedu/us/among/logic/commands/SendCommand.java +++ b/src/main/java/seedu/us/among/logic/commands/SendCommand.java @@ -38,13 +38,13 @@ public class SendCommand extends Command { public SendCommand(Index index) { requireAllNonNull(index); + assert index.getZeroBased() >= 0; this.index = index; } @Override public CommandResult execute(Model model) throws CommandException, RequestException, AbortRequestException { List lastShownList = model.getFilteredEndpointList(); - assert index.getZeroBased() >= 0; if (index.getZeroBased() >= lastShownList.size()) { logger.info("Illegal index found, out of bound"); throw new CommandException(Messages.MESSAGE_INVALID_ENDPOINT_DISPLAYED_INDEX); diff --git a/src/test/java/seedu/us/among/logic/commands/SendCommandTest.java b/src/test/java/seedu/us/among/logic/commands/SendCommandTest.java index 4c7527fd802..2a7fac0f3de 100644 --- a/src/test/java/seedu/us/among/logic/commands/SendCommandTest.java +++ b/src/test/java/seedu/us/among/logic/commands/SendCommandTest.java @@ -3,15 +3,24 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.us.among.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.us.among.logic.commands.CommandTestUtil.showEndpointAtIndex; import static seedu.us.among.testutil.Assert.assertThrows; import static seedu.us.among.testutil.TypicalEndpoints.getTypicalEndpointList; import static seedu.us.among.testutil.TypicalIndexes.INDEX_EIGHTH_ENDPOINT; import static seedu.us.among.testutil.TypicalIndexes.INDEX_FIRST_ENDPOINT; import static seedu.us.among.testutil.TypicalIndexes.INDEX_SECOND_ENDPOINT; +import java.io.IOException; + import org.junit.jupiter.api.Test; +import seedu.us.among.commons.core.Messages; +import seedu.us.among.commons.core.index.Index; import seedu.us.among.commons.util.JsonUtil; +import seedu.us.among.logic.commands.exceptions.CommandException; +import seedu.us.among.logic.request.exceptions.AbortRequestException; +import seedu.us.among.logic.request.exceptions.RequestException; import seedu.us.among.model.Model; import seedu.us.among.model.ModelManager; import seedu.us.among.model.UserPrefs; @@ -37,6 +46,37 @@ public void execute_endpoint_sendSuccessful() throws Exception { commandResult.getFeedbackToUser()); } + @Test + public void constructor_validIndex_success() { + new SendCommand(INDEX_FIRST_ENDPOINT); + } + + @Test + public void execute_outOfBoundEndpointIndexUnfilteredList_failure() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredEndpointList().size() + 1); + SendCommand SendCommand = new SendCommand(outOfBoundIndex); + assertCommandFailure(SendCommand, model, Messages.MESSAGE_INVALID_ENDPOINT_DISPLAYED_INDEX); + } + + @Test + public void execute_outOfBoundEndpointIndexFilteredList_failure() { + showEndpointAtIndex(model, INDEX_FIRST_ENDPOINT); + Index outOfBoundIndex = INDEX_SECOND_ENDPOINT; + // ensures that outOfBoundIndex is still in bounds of API endpoint list + assertTrue(outOfBoundIndex.getZeroBased() < model.getEndpointList().getEndpointList().size()); + + assertCommandFailure(new SendCommand(outOfBoundIndex), model, + Messages.MESSAGE_INVALID_ENDPOINT_DISPLAYED_INDEX); + } + + @Test + public void execute_validEndpointIndex_success() throws CommandException, AbortRequestException, + RequestException, IOException { + SendCommand SendCommand = new SendCommand(Index.fromZeroBased(7)); + assertEquals(JsonUtil.toPrettyPrintJsonString(SampleDataUtil.getSampleValidResponse()), + SendCommand.execute(model).getFeedbackToUser()); + } + @Test public void equals() { final SendCommand standardCommand = new SendCommand(INDEX_FIRST_ENDPOINT); From 8b95dd0b6fc8b779eabb14efbe7d41ae586b1e23 Mon Sep 17 00:00:00 2001 From: Tan Jin Date: Tue, 23 Mar 2021 22:25:51 +0800 Subject: [PATCH 2/5] Chore: add test cases for SendCommandParser --- .../logic/parser/SendCommandParserTest.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/us/among/logic/parser/SendCommandParserTest.java b/src/test/java/seedu/us/among/logic/parser/SendCommandParserTest.java index 874ea0cd9be..8d82fd8b26f 100644 --- a/src/test/java/seedu/us/among/logic/parser/SendCommandParserTest.java +++ b/src/test/java/seedu/us/among/logic/parser/SendCommandParserTest.java @@ -11,6 +11,9 @@ public class SendCommandParserTest { + private static final String MESSAGE_INVALID_FORMAT = String.format(MESSAGE_INVALID_COMMAND_FORMAT, + SendCommand.MESSAGE_USAGE); + private SendCommandParser parser = new SendCommandParser(); @Test @@ -18,9 +21,20 @@ public void parse_validArgs_returnsSendCommand() { assertParseSuccess(parser, "1", new SendCommand(INDEX_FIRST_ENDPOINT)); } + @Test + public void parse_emptyArgs_returnsSendCommand() { + assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); + assertParseFailure(parser, " ", MESSAGE_INVALID_FORMAT); + } + @Test public void parse_invalidArgs_throwsParseException() { - assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, SendCommand.MESSAGE_USAGE)); + assertParseFailure(parser, "a", MESSAGE_INVALID_FORMAT); + assertParseFailure(parser, ".", MESSAGE_INVALID_FORMAT); + assertParseFailure(parser, "1a.", MESSAGE_INVALID_FORMAT); + assertParseFailure(parser, "a1", MESSAGE_INVALID_FORMAT); + assertParseFailure(parser, ".1", MESSAGE_INVALID_FORMAT); + assertParseFailure(parser, "1.", MESSAGE_INVALID_FORMAT); } } From 4486b36eeae1ed5efd93ddf0dae6bfbd7d357967 Mon Sep 17 00:00:00 2001 From: Tan Jin Date: Tue, 23 Mar 2021 22:27:00 +0800 Subject: [PATCH 3/5] Fix: fix variable naming to adhere to coding standard --- .../seedu/us/among/logic/commands/SendCommandTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/us/among/logic/commands/SendCommandTest.java b/src/test/java/seedu/us/among/logic/commands/SendCommandTest.java index 2a7fac0f3de..e0cce23fec6 100644 --- a/src/test/java/seedu/us/among/logic/commands/SendCommandTest.java +++ b/src/test/java/seedu/us/among/logic/commands/SendCommandTest.java @@ -54,8 +54,8 @@ public void constructor_validIndex_success() { @Test public void execute_outOfBoundEndpointIndexUnfilteredList_failure() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredEndpointList().size() + 1); - SendCommand SendCommand = new SendCommand(outOfBoundIndex); - assertCommandFailure(SendCommand, model, Messages.MESSAGE_INVALID_ENDPOINT_DISPLAYED_INDEX); + SendCommand sendCommand = new SendCommand(outOfBoundIndex); + assertCommandFailure(sendCommand, model, Messages.MESSAGE_INVALID_ENDPOINT_DISPLAYED_INDEX); } @Test @@ -72,9 +72,9 @@ public void execute_outOfBoundEndpointIndexFilteredList_failure() { @Test public void execute_validEndpointIndex_success() throws CommandException, AbortRequestException, RequestException, IOException { - SendCommand SendCommand = new SendCommand(Index.fromZeroBased(7)); + SendCommand sendCommand = new SendCommand(Index.fromZeroBased(7)); assertEquals(JsonUtil.toPrettyPrintJsonString(SampleDataUtil.getSampleValidResponse()), - SendCommand.execute(model).getFeedbackToUser()); + sendCommand.execute(model).getFeedbackToUser()); } @Test From 8cd4f1edc56b288da839fab8a4c643c28c1ae0b9 Mon Sep 17 00:00:00 2001 From: Tan Jin Date: Tue, 23 Mar 2021 22:47:44 +0800 Subject: [PATCH 4/5] Chore: add test cases for ToggleCommandParser --- .../among/logic/parser/ToggleCommandParserTest.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/test/java/seedu/us/among/logic/parser/ToggleCommandParserTest.java b/src/test/java/seedu/us/among/logic/parser/ToggleCommandParserTest.java index 825f10c4acc..ed572f632cf 100644 --- a/src/test/java/seedu/us/among/logic/parser/ToggleCommandParserTest.java +++ b/src/test/java/seedu/us/among/logic/parser/ToggleCommandParserTest.java @@ -23,6 +23,7 @@ public class ToggleCommandParserTest { public void parse_missingParts_failure() { // no theme specified assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); + assertParseFailure(parser, " ", MESSAGE_INVALID_FORMAT); } @Test @@ -33,11 +34,10 @@ public void parse_invalidValue_failure() { @Test public void parse_themeSpecified_success() { - String userInput = ThemeType.getTheme("light").toString(); - ToggleCommand expectedCommand = new ToggleCommand(ThemeType.getTheme("light").toString()); - - assertParseSuccess(parser, userInput, expectedCommand); + for (ThemeType theme: ThemeType.values()) { + String userInput = ThemeType.getTheme(theme.toString()).toString(); + ToggleCommand expectedCommand = new ToggleCommand(ThemeType.getTheme(theme.toString()).toString()); + assertParseSuccess(parser, userInput, expectedCommand); + } } - - } From 819fa1cdce4a8e8a7ddfdc8bd3aab46318181498 Mon Sep 17 00:00:00 2001 From: Tan Jin Date: Tue, 23 Mar 2021 22:59:11 +0800 Subject: [PATCH 5/5] Chore: add test cases for ToggleCommand --- .../logic/commands/ToggleCommandTest.java | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/test/java/seedu/us/among/logic/commands/ToggleCommandTest.java b/src/test/java/seedu/us/among/logic/commands/ToggleCommandTest.java index 073520a9c25..681f3c062c4 100644 --- a/src/test/java/seedu/us/among/logic/commands/ToggleCommandTest.java +++ b/src/test/java/seedu/us/among/logic/commands/ToggleCommandTest.java @@ -2,36 +2,37 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.us.among.testutil.TypicalEndpoints.getTypicalEndpointList; import org.junit.jupiter.api.Test; -import seedu.us.among.model.Model; -import seedu.us.among.model.ModelManager; -import seedu.us.among.model.UserPrefs; import seedu.us.among.ui.ThemeType; public class ToggleCommandTest { - private Model model = new ModelManager(getTypicalEndpointList(), new UserPrefs()); @Test public void equals() { - final ToggleCommand standardCommand = new ToggleCommand(ThemeType.getTheme("light").name()); - // same values -> returns true - ToggleCommand commandWithSameValues = new ToggleCommand(ThemeType.getTheme("light").name()); - assertTrue(standardCommand.equals(commandWithSameValues)); + for (ThemeType theme : ThemeType.values()) { + String userInput = ThemeType.getTheme(theme.toString()).name(); + ToggleCommand standardCommand = new ToggleCommand(userInput); - // same object -> returns true - assertTrue(standardCommand.equals(standardCommand)); + // same values -> returns true + ToggleCommand commandWithSameValues = new ToggleCommand(userInput); + assertTrue(standardCommand.equals(commandWithSameValues)); - // null -> returns false - assertFalse(standardCommand.equals(null)); + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); - // different types -> returns false - assertFalse(standardCommand.equals(new ClearCommand())); + // null -> returns false + assertFalse(standardCommand.equals(null)); - // different index -> returns false + // different types -> returns false + assertFalse(standardCommand.equals(new ClearCommand())); + } + + ToggleCommand standardCommand = new ToggleCommand(ThemeType.getTheme("light").name()); + + // different theme toggle -> returns false assertFalse(standardCommand.equals(new ToggleCommand(ThemeType.getTheme("dark").name()))); } }