Skip to content

Commit

Permalink
Merge pull request #251 from limdanqi/danqi-ImproveParserUtil
Browse files Browse the repository at this point in the history
Improve parseFlags test in ParserUtil
  • Loading branch information
mslevis authored Nov 8, 2021
2 parents 9b95f39 + 687ce4a commit fe3cb8d
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/main/java/seedu/address/logic/commands/AddCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public class AddCommand extends Command {
+ PREFIX_HOURS + "5 "
+ PREFIX_ADDRESS + "SoC "
+ PREFIX_TAG + "cold "
+ PREFIX_TAG + "quiet"
+ PREFIX_TAG + "quiet "
+ PREFIX_AMENITY + "wifi";

public static final String MESSAGE_SUCCESS = "New study spot added: %1$s";
Expand Down
46 changes: 46 additions & 0 deletions src/test/java/seedu/address/logic/parser/ParserUtilTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
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.address.logic.parser.CliSyntax.PREFIX_FLAG;
import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX;
import static seedu.address.testutil.Assert.assertThrows;
import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_SPOT;
Expand All @@ -11,6 +13,7 @@
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Predicate;

import org.junit.jupiter.api.Test;

Expand All @@ -21,7 +24,9 @@
import seedu.address.model.studyspot.OperatingHours;
import seedu.address.model.studyspot.Rating;
import seedu.address.model.studyspot.StudiedHours;
import seedu.address.model.studyspot.StudySpot;
import seedu.address.model.tag.Tag;
import seedu.address.testutil.StudySpotBuilder;

public class ParserUtilTest {
private static final String INVALID_NAME = "R@chel";
Expand Down Expand Up @@ -304,4 +309,45 @@ public void parseStudiedHours_largerThanMaxInteger_throwsParseException() {
assertThrows(ParseException.class, () -> ParserUtil.parseStudiedHours(maxIntegerPlusOne));
}

@Test
public void parseFlags_null_throwsNullPointerException() {
assertThrows(NullPointerException.class, () -> ParserUtil.parseFlags(null));
}

@Test
public void parseFlags_validValue_returnsStudySpotPredicate() throws Exception {
// favourite flag
ArgumentMultimap argumentMultimapFavourite = ArgumentTokenizer.tokenize(" -f", PREFIX_FLAG);
Predicate<StudySpot> predicateReturnedForFavourite = ParserUtil.parseFlags(argumentMultimapFavourite);
StudySpot favouriteSpot = new StudySpotBuilder().withFavourite(true).build();
StudySpot unfavouriteSpot = new StudySpotBuilder().withFavourite(false).build();

assertTrue(predicateReturnedForFavourite.test(favouriteSpot));
assertFalse(predicateReturnedForFavourite.test(unfavouriteSpot));

// tag flag
String tagArguments = " -t t/quiet";
ArgumentMultimap argumentMultimapTag = ArgumentTokenizer.tokenize(tagArguments, PREFIX_FLAG);
Predicate<StudySpot> predicateReturnedForTag = ParserUtil.parseFlags(argumentMultimapTag);
StudySpot taggedSpot = new StudySpotBuilder().withTags("quiet").build();

assertTrue(predicateReturnedForTag.test(taggedSpot));

// amenity flag
String amenityArguments = " -m m/wifi";
ArgumentMultimap argumentMultimapAmenity = ArgumentTokenizer.tokenize(amenityArguments, PREFIX_FLAG);
Predicate<StudySpot> predicateReturnedForAmenity = ParserUtil.parseFlags(argumentMultimapAmenity);
StudySpot spotWithAmenity = new StudySpotBuilder().withAmenities("wifi").build();

assertTrue(predicateReturnedForAmenity.test(spotWithAmenity));

// rating flag
String ratingArguments = " -r r/4";
ArgumentMultimap argumentMultimapRating = ArgumentTokenizer.tokenize(ratingArguments, PREFIX_FLAG);
Predicate<StudySpot> predicateReturnedForRating = ParserUtil.parseFlags(argumentMultimapRating);
StudySpot spotWithRating = new StudySpotBuilder().withRating("4").build();

assertTrue(predicateReturnedForRating.test(spotWithRating));
}

}

0 comments on commit fe3cb8d

Please sign in to comment.