-
Notifications
You must be signed in to change notification settings - Fork 426
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Logic: Teach the app to accept 'remark' arguments but still do nothing
Modify RemarkCommand to take in an Index and String for remark, and print those two parameters as the error message Modify RemarkCommandTest to test the equals method Add RemarkCommandParser that will know how to parse two arguments, one index and one with prefix 'r/' Add RemarkCommandParserTest that will test different boundary values for RemarkCommandParser. Modify AddressBookParser to use the newly implemented RemarkCommandParser Modify AddressBookParserTest to ensure that what the user input generated the correct command.
- Loading branch information
Showing
7 changed files
with
157 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
36 changes: 36 additions & 0 deletions
36
src/main/java/seedu/address/logic/parser/RemarkCommandParser.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package seedu.address.logic.parser; | ||
|
||
import static java.util.Objects.requireNonNull; | ||
import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; | ||
import static seedu.address.logic.parser.CliSyntax.PREFIX_REMARK; | ||
|
||
import seedu.address.commons.core.index.Index; | ||
import seedu.address.commons.exceptions.IllegalValueException; | ||
import seedu.address.logic.commands.RemarkCommand; | ||
import seedu.address.logic.parser.exceptions.ParseException; | ||
|
||
/** | ||
* Parses input arguments and creates a new {@code RemarkCommand} object | ||
*/ | ||
public class RemarkCommandParser implements Parser<RemarkCommand> { | ||
/** | ||
* Parses the given {@code String} of arguments in the context of the {@code RemarkCommand} | ||
* and returns a {@code RemarkCommand} object for execution. | ||
* @throws ParseException if the user input does not conform the expected format | ||
*/ | ||
public RemarkCommand parse(String args) throws ParseException { | ||
requireNonNull(args); | ||
ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_REMARK); | ||
|
||
Index index; | ||
try { | ||
index = ParserUtil.parseIndex(argMultimap.getPreamble()); | ||
} catch (IllegalValueException ive) { | ||
throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, RemarkCommand.MESSAGE_USAGE), ive); | ||
} | ||
|
||
String remark = argMultimap.getValue(PREFIX_REMARK).orElse(""); | ||
|
||
return new RemarkCommand(index, remark); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,6 +34,8 @@ public class CommandTestUtil { | |
public static final String VALID_EMAIL_BOB = "[email protected]"; | ||
public static final String VALID_ADDRESS_AMY = "Block 312, Amy Street 1"; | ||
public static final String VALID_ADDRESS_BOB = "Block 123, Bobby Street 3"; | ||
public static final String VALID_REMARK_AMY = "Like skiing."; | ||
public static final String VALID_REMARK_BOB = "Favourite pastime: Eating"; | ||
public static final String VALID_TAG_HUSBAND = "husband"; | ||
public static final String VALID_TAG_FRIEND = "friend"; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
src/test/java/seedu/address/logic/parser/RemarkCommandParserTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package seedu.address.logic.parser; | ||
|
||
import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; | ||
import static seedu.address.logic.parser.CliSyntax.PREFIX_REMARK; | ||
import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; | ||
import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; | ||
import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; | ||
|
||
import org.junit.jupiter.api.Test; | ||
|
||
import seedu.address.commons.core.index.Index; | ||
import seedu.address.logic.commands.RemarkCommand; | ||
|
||
public class RemarkCommandParserTest { | ||
private RemarkCommandParser parser = new RemarkCommandParser(); | ||
private final String nonEmptyRemark = "Some remark."; | ||
|
||
@Test | ||
public void parse_indexSpecified_success() { | ||
// have remark | ||
Index targetIndex = INDEX_FIRST_PERSON; | ||
String userInput = targetIndex.getOneBased() + " " + PREFIX_REMARK + nonEmptyRemark; | ||
RemarkCommand expectedCommand = new RemarkCommand(INDEX_FIRST_PERSON, nonEmptyRemark); | ||
assertParseSuccess(parser, userInput, expectedCommand); | ||
|
||
// no remark | ||
userInput = targetIndex.getOneBased() + " " + PREFIX_REMARK; | ||
expectedCommand = new RemarkCommand(INDEX_FIRST_PERSON, ""); | ||
assertParseSuccess(parser, userInput, expectedCommand); | ||
} | ||
|
||
@Test | ||
public void parse_missingCompulsoryField_failure() { | ||
String expectedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT, RemarkCommand.MESSAGE_USAGE); | ||
|
||
// no parameters | ||
assertParseFailure(parser, RemarkCommand.COMMAND_WORD, expectedMessage); | ||
|
||
// no index | ||
assertParseFailure(parser, RemarkCommand.COMMAND_WORD + " " + nonEmptyRemark, expectedMessage); | ||
} | ||
} |