diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 4abb17e3e..4492d3cc8 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -86,10 +86,10 @@ and persons matching at least one keyword will be returned (i.e. `OR` search). Examples: * `find John` + -Returns `John Doe` but not `john`. +Returns `John Doe` and `john`. * `find Betsy Tim John` + -Returns Any person having names `Betsy`, `Tim`, or `John`. +Returns Any person having names `Betsy`, `betsy`, `Tim`, `tim`, `John` and `john`. == Deleting a person : `delete` diff --git a/src/seedu/addressbook/data/person/Name.java b/src/seedu/addressbook/data/person/Name.java index d1d271414..102525b6a 100644 --- a/src/seedu/addressbook/data/person/Name.java +++ b/src/seedu/addressbook/data/person/Name.java @@ -40,7 +40,7 @@ public static boolean isValidName(String test) { * Retrieves a listing of every word in the name, in order. */ public List getWordsInName() { - return Arrays.asList(fullName.split("\\s+")); + return Arrays.asList(fullName.toLowerCase().split("\\s+")); } @Override diff --git a/src/seedu/addressbook/parser/Parser.java b/src/seedu/addressbook/parser/Parser.java index abddb3f45..b4c72f408 100644 --- a/src/seedu/addressbook/parser/Parser.java +++ b/src/seedu/addressbook/parser/Parser.java @@ -236,7 +236,7 @@ private int parseArgsAsDisplayedIndex(String args) throws ParseException, Number * @return the prepared command */ private Command prepareFind(String args) { - final Matcher matcher = KEYWORDS_ARGS_FORMAT.matcher(args.trim()); + final Matcher matcher = KEYWORDS_ARGS_FORMAT.matcher(args.toLowerCase().trim()); if (!matcher.matches()) { return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); diff --git a/test/expected.txt b/test/expected.txt index 56fe5fcac..5bbc437ae 100644 --- a/test/expected.txt +++ b/test/expected.txt @@ -213,8 +213,9 @@ || 0 persons listed! || =================================================== || Enter command: || [Command entered: find betsy] +|| 1. Betsy Choo Tags: [secretive] || -|| 0 persons listed! +|| 1 persons listed! || =================================================== || Enter command: || [Command entered: find Betsy] || 1. Betsy Choo Tags: [secretive] diff --git a/test/java/seedu/addressbook/commands/FindCommandTest.java b/test/java/seedu/addressbook/commands/FindCommandTest.java index f21b1e8e7..6383063ea 100644 --- a/test/java/seedu/addressbook/commands/FindCommandTest.java +++ b/test/java/seedu/addressbook/commands/FindCommandTest.java @@ -26,7 +26,7 @@ public void execute() throws IllegalValueException { assertFindCommandBehavior(new String[]{"Amy"}, Arrays.asList(td.amy)); //same word, different case: not matched - assertFindCommandBehavior(new String[]{"aMy"}, Collections.emptyList()); + assertFindCommandBehavior(new String[]{"aMy"}, Arrays.asList(td.amy)); //partial word: not matched assertFindCommandBehavior(new String[]{"my"}, Collections.emptyList()); @@ -54,6 +54,10 @@ private void assertFindCommandBehavior(String[] keywords, List e } private FindCommand createFindCommand(String[] keywords) { + // Change all the keyword to lowercase. + for(int i = 0; i < keywords.length; i++){ + keywords[i] = keywords[i].toLowerCase(); + } final Set keywordSet = new HashSet<>(Arrays.asList(keywords)); FindCommand command = new FindCommand(keywordSet); command.setData(addressBook, Collections.emptyList());