diff --git a/src/main/java/seedu/address/logic/parser/AddGroupCommandParser.java b/src/main/java/seedu/address/logic/parser/AddGroupCommandParser.java index 2d49155b435..5e04d0f53b2 100644 --- a/src/main/java/seedu/address/logic/parser/AddGroupCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddGroupCommandParser.java @@ -10,7 +10,7 @@ import seedu.address.logic.commands.AddGroupCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.student.ClassCode; -import seedu.address.model.tutorialgroup.GroupName; +import seedu.address.model.tutorialgroup.GroupNumber; import seedu.address.model.tutorialgroup.GroupType; import seedu.address.model.tutorialgroup.TutorialGroup; @@ -30,11 +30,11 @@ public AddGroupCommand parse(String args) throws ParseException { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddGroupCommand.MESSAGE_USAGE)); } - GroupName groupName = ParserUtil.parseGroupName(argMultimap.getValue(PREFIX_GROUPNAME).get()); + GroupNumber groupNumber = ParserUtil.parseGroupName(argMultimap.getValue(PREFIX_GROUPNAME).get()); ClassCode classCode = ParserUtil.parseClassCode(argMultimap.getValue(PREFIX_CLASSCODE).get()); GroupType groupType = ParserUtil.parseGroupType(argMultimap.getValue(PREFIX_TYPE).get()); - TutorialGroup tutorialGroup = new TutorialGroup(groupName, classCode, groupType); + TutorialGroup tutorialGroup = new TutorialGroup(groupNumber, classCode, groupType); return new AddGroupCommand(tutorialGroup); diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index a7c7b2f694e..9d790cd47c2 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -17,7 +17,7 @@ import seedu.address.model.student.StudentMark; import seedu.address.model.tag.Tag; import seedu.address.model.tutorialclass.Schedule; -import seedu.address.model.tutorialgroup.GroupName; +import seedu.address.model.tutorialgroup.GroupNumber; import seedu.address.model.tutorialgroup.GroupType; /** @@ -151,13 +151,13 @@ public static Schedule parseSchedule(String schedule) throws ParseException { * Leading and trailing whitespaces will be trimmed. * @throws ParseException if the given {@code schedule} is invalid. */ - public static GroupName parseGroupName(String groupName) throws ParseException { + public static GroupNumber parseGroupName(String groupName) throws ParseException { requireNonNull(groupName); String trimmedGroupName = groupName.trim(); - if (!GroupName.isValidGroupName(groupName)) { - throw new ParseException(GroupName.MESSAGE_CONSTRAINTS); + if (!GroupNumber.isValidGroupName(groupName)) { + throw new ParseException(GroupNumber.MESSAGE_CONSTRAINTS); } - return new GroupName(trimmedGroupName); + return new GroupNumber(trimmedGroupName); } /** diff --git a/src/main/java/seedu/address/model/tutorialgroup/GroupName.java b/src/main/java/seedu/address/model/tutorialgroup/GroupNumber.java similarity index 80% rename from src/main/java/seedu/address/model/tutorialgroup/GroupName.java rename to src/main/java/seedu/address/model/tutorialgroup/GroupNumber.java index 945bc16655e..4aef57234f5 100644 --- a/src/main/java/seedu/address/model/tutorialgroup/GroupName.java +++ b/src/main/java/seedu/address/model/tutorialgroup/GroupNumber.java @@ -4,7 +4,7 @@ import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.AppUtil.checkArgument; -public class GroupName implements Comparable { +public class GroupNumber implements Comparable { public static final String MESSAGE_CONSTRAINTS = "GroupName must be a single digit, and it should not be blank"; private static final String GROUPNAME_REGEX = "\\d"; @@ -16,7 +16,7 @@ public class GroupName implements Comparable { * * @param groupName A valid groupName. */ - public GroupName (String groupName) { + public GroupNumber(String groupName) { requireNonNull(groupName); checkArgument(isValidGroupName(groupName), MESSAGE_CONSTRAINTS); value = groupName; @@ -44,8 +44,8 @@ public String toString() { @Override public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof GroupName // instanceof handles nulls - && value.equals(((GroupName) other).value)); // state check + || (other instanceof GroupNumber // instanceof handles nulls + && value.equals(((GroupNumber) other).value)); // state check } @Override @@ -54,8 +54,8 @@ public int hashCode() { } @Override - public int compareTo(GroupName groupName) { - return parseGroupName(this.value).compareTo(parseGroupName(groupName.value)); + public int compareTo(GroupNumber groupNumber) { + return parseGroupName(this.value).compareTo(parseGroupName(groupNumber.value)); } } diff --git a/src/main/java/seedu/address/model/tutorialgroup/TutorialGroup.java b/src/main/java/seedu/address/model/tutorialgroup/TutorialGroup.java index 4442630fbd1..2dc94054e3d 100644 --- a/src/main/java/seedu/address/model/tutorialgroup/TutorialGroup.java +++ b/src/main/java/seedu/address/model/tutorialgroup/TutorialGroup.java @@ -6,23 +6,23 @@ public class TutorialGroup { - private final GroupName groupName; + private final GroupNumber groupNumber; private final ClassCode classCode; private final GroupType groupType; /** - * @param groupName GroupName of Tutorial Group. + * @param groupNumber GroupName of Tutorial Group. * @param classCode ClassCode of Tutorial Group. */ - public TutorialGroup(GroupName groupName, ClassCode classCode, GroupType groupType) { - this.groupName = groupName; + public TutorialGroup(GroupNumber groupNumber, ClassCode classCode, GroupType groupType) { + this.groupNumber = groupNumber; this.classCode = classCode; this.groupType = groupType; } - public GroupName getGroupName() { - return groupName; + public GroupNumber getGroupName() { + return groupNumber; } public ClassCode getClassCode() { @@ -67,7 +67,7 @@ public boolean equals(Object other) { @Override public int hashCode() { - return Objects.hash(groupName, classCode, groupType); + return Objects.hash(groupNumber, classCode, groupType); } @Override diff --git a/src/main/java/seedu/address/storage/JsonAdaptedTutorialGroup.java b/src/main/java/seedu/address/storage/JsonAdaptedTutorialGroup.java index 2f74279f0ab..b7b7c2e84a8 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedTutorialGroup.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedTutorialGroup.java @@ -6,7 +6,7 @@ import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.model.student.ClassCode; import seedu.address.model.tag.Tag; -import seedu.address.model.tutorialgroup.GroupName; +import seedu.address.model.tutorialgroup.GroupNumber; import seedu.address.model.tutorialgroup.GroupType; import seedu.address.model.tutorialgroup.TutorialGroup; @@ -56,11 +56,11 @@ public TutorialGroup toModelType() throws IllegalValueException { if (groupName == null) { throw new IllegalValueException( - String.format(MISSING_FIELD_MESSAGE_FORMAT, GroupName.class.getSimpleName()) + String.format(MISSING_FIELD_MESSAGE_FORMAT, GroupNumber.class.getSimpleName()) ); } - final GroupName modelGroupName = new GroupName(groupName); + final GroupNumber modelGroupNumber = new GroupNumber(groupName); if (groupType == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, String.class.getSimpleName())); @@ -68,7 +68,7 @@ public TutorialGroup toModelType() throws IllegalValueException { final GroupType modelGroupType = new GroupType(groupType); - return new TutorialGroup(modelGroupName, modelClassCode, modelGroupType); + return new TutorialGroup(modelGroupNumber, modelClassCode, modelGroupType); } } diff --git a/src/test/java/seedu/address/logic/commands/AddGroupCommandTest.java b/src/test/java/seedu/address/logic/commands/AddGroupCommandTest.java index a91b8992145..0411b02f9de 100644 --- a/src/test/java/seedu/address/logic/commands/AddGroupCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddGroupCommandTest.java @@ -52,8 +52,8 @@ public void execute_duplicateTutorialGroup_throwsCommandException() { @Test public void equals() { - TutorialGroup a = new TutorialGroupBuilder().withClassCode("a").build(); - TutorialGroup b = new TutorialGroupBuilder().withClassCode("b").build(); + TutorialGroup a = new TutorialGroupBuilder().withClassCode("G01").build(); + TutorialGroup b = new TutorialGroupBuilder().withClassCode("G02").build(); AddGroupCommand addACommand = new AddGroupCommand(a); AddGroupCommand addBCommand = new AddGroupCommand(b); diff --git a/src/test/java/seedu/address/logic/parser/AddGroupCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddGroupCommandParserTest.java index b732520167d..a15c6fc7844 100644 --- a/src/test/java/seedu/address/logic/parser/AddGroupCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddGroupCommandParserTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test; import seedu.address.logic.commands.AddGroupCommand; -import seedu.address.model.tutorialgroup.GroupName; +import seedu.address.model.tutorialgroup.GroupNumber; import seedu.address.model.tutorialgroup.GroupType; import seedu.address.model.tutorialgroup.TutorialGroup; import seedu.address.testutil.TutorialGroupBuilder; @@ -78,7 +78,7 @@ public void parse_invalidValue_failure() { // invalid group name assertParseFailure(parser, INVALID_GROUPNAME_DESC + CLASSCODE_DESC_G01 + GROUPTYPE_DESC_OP1, - GroupName.MESSAGE_CONSTRAINTS); + GroupNumber.MESSAGE_CONSTRAINTS); // invalid group type assertParseFailure(parser, GROUPNAME_DESC_1 + CLASSCODE_DESC_G01 + INVALID_GROUPTYPE_DESC, @@ -86,7 +86,7 @@ public void parse_invalidValue_failure() { // two invalid values, only first invalid value reported assertParseFailure(parser, INVALID_GROUPNAME_DESC + CLASSCODE_DESC_G01 + INVALID_GROUPTYPE_DESC, - GroupName.MESSAGE_CONSTRAINTS); + GroupNumber.MESSAGE_CONSTRAINTS); // preamble not empty assertParseFailure(parser, PREAMBLE_NON_EMPTY + CLASSCODE_DESC_G01 + GROUPNAME_DESC_1 + GROUPTYPE_DESC_OP1, diff --git a/src/test/java/seedu/address/model/tutorialgroup/GroupNameTest.java b/src/test/java/seedu/address/model/tutorialgroup/GroupNameTest.java deleted file mode 100644 index 47f6aa6f7d8..00000000000 --- a/src/test/java/seedu/address/model/tutorialgroup/GroupNameTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package seedu.address.model.tutorialgroup; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; - -import org.junit.jupiter.api.Test; - - -public class GroupNameTest { - - @Test - public void constructor_null_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new GroupName(null)); - } - - @Test - public void constructor_invalidName_throwsIllegalArgumentException() { - String invalidGroupName = ""; - assertThrows(IllegalArgumentException.class, () -> new GroupName(invalidGroupName)); - } - - @Test - public void isValidName() { - // null group name - assertThrows(NullPointerException.class, () -> GroupName.isValidGroupName(null)); - - // invalid group name - assertFalse(GroupName.isValidGroupName("")); // empty string - assertFalse(GroupName.isValidGroupName(" ")); // spaces only - assertFalse(GroupName.isValidGroupName("^")); // only non-alphanumeric characters - assertFalse(GroupName.isValidGroupName("peter*")); // contains non-alphanumeric characters - assertFalse(GroupName.isValidGroupName("peter")); // contains alphabets - assertFalse(GroupName.isValidGroupName("12")); // contains more than one digit - - // valid group name - assertTrue(GroupName.isValidGroupName("1")); // alphabets only - assertTrue(GroupName.isValidGroupName("2")); // numbers only - } -} diff --git a/src/test/java/seedu/address/model/tutorialgroup/GroupNumberTest.java b/src/test/java/seedu/address/model/tutorialgroup/GroupNumberTest.java new file mode 100644 index 00000000000..cf2f423d794 --- /dev/null +++ b/src/test/java/seedu/address/model/tutorialgroup/GroupNumberTest.java @@ -0,0 +1,40 @@ +package seedu.address.model.tutorialgroup; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.testutil.Assert.assertThrows; + +import org.junit.jupiter.api.Test; + + +public class GroupNumberTest { + + @Test + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new GroupNumber(null)); + } + + @Test + public void constructor_invalidName_throwsIllegalArgumentException() { + String invalidGroupName = ""; + assertThrows(IllegalArgumentException.class, () -> new GroupNumber(invalidGroupName)); + } + + @Test + public void isValidName() { + // null group name + assertThrows(NullPointerException.class, () -> GroupNumber.isValidGroupName(null)); + + // invalid group name + assertFalse(GroupNumber.isValidGroupName("")); // empty string + assertFalse(GroupNumber.isValidGroupName(" ")); // spaces only + assertFalse(GroupNumber.isValidGroupName("^")); // only non-alphanumeric characters + assertFalse(GroupNumber.isValidGroupName("peter*")); // contains non-alphanumeric characters + assertFalse(GroupNumber.isValidGroupName("peter")); // contains alphabets + assertFalse(GroupNumber.isValidGroupName("12")); // contains more than one digit + + // valid group name + assertTrue(GroupNumber.isValidGroupName("1")); // alphabets only + assertTrue(GroupNumber.isValidGroupName("2")); // numbers only + } +} diff --git a/src/test/java/seedu/address/model/tutorialgroup/TutorialGroupTest.java b/src/test/java/seedu/address/model/tutorialgroup/TutorialGroupTest.java index 68964d51a4d..9df564142dd 100644 --- a/src/test/java/seedu/address/model/tutorialgroup/TutorialGroupTest.java +++ b/src/test/java/seedu/address/model/tutorialgroup/TutorialGroupTest.java @@ -2,10 +2,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.VALID_CLASSCODE_G102; +import static seedu.address.logic.commands.CommandTestUtil.VALID_CLASSCODE_G01; +import static seedu.address.logic.commands.CommandTestUtil.VALID_CLASSCODE_G02; import static seedu.address.logic.commands.CommandTestUtil.VALID_GROUPNAME_2; import static seedu.address.logic.commands.CommandTestUtil.VALID_GROUPTYPE_OP2; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; import static seedu.address.testutil.TypicalTutorialGroups.TUT_01; import static seedu.address.testutil.TypicalTutorialGroups.TUT_02; @@ -29,17 +29,17 @@ public void isSameTutorialGroup() { assertFalse(TUT_01.isSameTutorialGroup(editedTut01)); // same group name, all other attributes different -> returns false - editedTut01 = new TutorialGroupBuilder(TUT_01).withClassCode(VALID_CLASSCODE_G102) + editedTut01 = new TutorialGroupBuilder(TUT_01).withClassCode(VALID_CLASSCODE_G01) .withGroupType(VALID_GROUPTYPE_OP2).build(); assertFalse(TUT_01.isSameTutorialGroup(editedTut01)); // same group type, all other attributes different -> returns false - editedTut01 = new TutorialGroupBuilder(TUT_01).withClassCode(VALID_CLASSCODE_G102) + editedTut01 = new TutorialGroupBuilder(TUT_01).withClassCode(VALID_CLASSCODE_G02) .withGroupName(VALID_GROUPNAME_2).build(); assertFalse(TUT_01.isSameTutorialGroup(editedTut01)); // different class code, all other attributes same -> returns false - editedTut01 = new TutorialGroupBuilder(TUT_01).withClassCode(VALID_NAME_BOB).build(); + editedTut01 = new TutorialGroupBuilder(TUT_01).withClassCode(VALID_CLASSCODE_G02).build(); assertFalse(TUT_01.isSameTutorialGroup(editedTut01)); // different group name, all other attributes same -> returns false @@ -70,7 +70,7 @@ public void equals() { assertFalse(TUT_01.equals(TUT_02)); // different class code -> returns false - TutorialGroup editedTut01 = new TutorialGroupBuilder(TUT_01).withClassCode(VALID_CLASSCODE_G102).build(); + TutorialGroup editedTut01 = new TutorialGroupBuilder(TUT_01).withClassCode(VALID_CLASSCODE_G02).build(); assertFalse(TUT_01.equals(editedTut01)); // different group name -> returns false diff --git a/src/test/java/seedu/address/testutil/TutorialGroupBuilder.java b/src/test/java/seedu/address/testutil/TutorialGroupBuilder.java index 9060cbb5522..525cbf56720 100644 --- a/src/test/java/seedu/address/testutil/TutorialGroupBuilder.java +++ b/src/test/java/seedu/address/testutil/TutorialGroupBuilder.java @@ -1,18 +1,18 @@ package seedu.address.testutil; import seedu.address.model.student.ClassCode; -import seedu.address.model.tutorialgroup.GroupName; +import seedu.address.model.tutorialgroup.GroupNumber; import seedu.address.model.tutorialgroup.GroupType; import seedu.address.model.tutorialgroup.TutorialGroup; public class TutorialGroupBuilder { - public static final String DEFAULT_CLASSCODE = "G01"; + public static final String DEFAULT_CLASSCODE = "G06"; public static final String DEFAULT_GROUPNAME = "1"; public static final String DEFAULT_GROUPTYPE = "OP1"; private ClassCode classCode; - private GroupName groupName; + private GroupNumber groupNumber; private GroupType groupType; /** @@ -20,7 +20,7 @@ public class TutorialGroupBuilder { */ public TutorialGroupBuilder() { classCode = new ClassCode(DEFAULT_CLASSCODE); - groupName = new GroupName(DEFAULT_GROUPNAME); + groupNumber = new GroupNumber(DEFAULT_GROUPNAME); groupType = new GroupType(DEFAULT_GROUPTYPE); } @@ -29,7 +29,7 @@ public TutorialGroupBuilder() { */ public TutorialGroupBuilder(TutorialGroup tutorialGroupToCopy) { classCode = tutorialGroupToCopy.getClassCode(); - groupName = tutorialGroupToCopy.getGroupName(); + groupNumber = tutorialGroupToCopy.getGroupName(); groupType = tutorialGroupToCopy.getGroupType(); } @@ -45,7 +45,7 @@ public TutorialGroupBuilder withClassCode(String classCode) { * Sets the {@code ClassCode} of the {@code TutorialClass} that we are building. */ public TutorialGroupBuilder withGroupName(String groupName) { - this.groupName = new GroupName(groupName); + this.groupNumber = new GroupNumber(groupName); return this; } @@ -58,6 +58,6 @@ public TutorialGroupBuilder withGroupType(String groupType) { } public TutorialGroup build() { - return new TutorialGroup(groupName, classCode, groupType); + return new TutorialGroup(groupNumber, classCode, groupType); } } diff --git a/src/test/java/seedu/address/testutil/TypicalTutorialGroups.java b/src/test/java/seedu/address/testutil/TypicalTutorialGroups.java index f5fbf10d1b7..508994d0110 100644 --- a/src/test/java/seedu/address/testutil/TypicalTutorialGroups.java +++ b/src/test/java/seedu/address/testutil/TypicalTutorialGroups.java @@ -1,7 +1,7 @@ package seedu.address.testutil; -import static seedu.address.logic.commands.CommandTestUtil.VALID_CLASSCODE_G101; -import static seedu.address.logic.commands.CommandTestUtil.VALID_CLASSCODE_G102; +import static seedu.address.logic.commands.CommandTestUtil.VALID_CLASSCODE_G01; +import static seedu.address.logic.commands.CommandTestUtil.VALID_CLASSCODE_G02; import static seedu.address.logic.commands.CommandTestUtil.VALID_GROUPNAME_1; import static seedu.address.logic.commands.CommandTestUtil.VALID_GROUPNAME_2; import static seedu.address.logic.commands.CommandTestUtil.VALID_GROUPTYPE_OP1; @@ -18,9 +18,9 @@ * A utility class containing a list of {@code TutorialGroup} objects to be used in tests. */ public class TypicalTutorialGroups { - public static final TutorialGroup TUT_01 = new TutorialGroupBuilder().withClassCode(VALID_CLASSCODE_G101) + public static final TutorialGroup TUT_01 = new TutorialGroupBuilder().withClassCode(VALID_CLASSCODE_G01) .withGroupName(VALID_GROUPNAME_1).withGroupType(VALID_GROUPTYPE_OP1).build(); - public static final TutorialGroup TUT_02 = new TutorialGroupBuilder().withClassCode(VALID_CLASSCODE_G102) + public static final TutorialGroup TUT_02 = new TutorialGroupBuilder().withClassCode(VALID_CLASSCODE_G02) .withGroupName(VALID_GROUPNAME_2).withGroupType(VALID_GROUPTYPE_OP2).build(); // Prevent instantiation