From 32dc42512f06fcc3288e51865007189b1d34c5c0 Mon Sep 17 00:00:00 2001 From: Lalelulilulela Date: Tue, 2 Apr 2024 15:16:28 +0800 Subject: [PATCH 1/4] Fix edit companyName bug --- .../address/logic/commands/EditCommand.java | 2 +- .../seedu/address/logic/parser/ParserUtil.java | 4 ++-- .../address/model/person/CompanyName.java | 6 +++--- .../address/storage/JsonAdaptedPerson.java | 2 +- .../address/model/person/CompanyNameTest.java | 18 +++++++++--------- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 9afaeb26cec..d98022abbf9 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -200,7 +200,7 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) { * Returns true if at least one field is edited. */ public boolean isAnyFieldEdited() { - return CollectionUtil.isAnyNonNull(name, phone, email, address, dateTime, salary, info, tags, + return CollectionUtil.isAnyNonNull(companyName, name, phone, email, address, dateTime, salary, info, tags, programmingLanguages, priority); } public void setCompanyName(CompanyName companyName) { diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 909df988b8a..7b86291acef 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -49,8 +49,8 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { public static CompanyName parseCompanyName(String companyName) throws ParseException { requireNonNull(companyName); String trimmedName = companyName.trim(); - if (!CompanyName.isValidName(trimmedName)) { - throw new ParseException(Name.MESSAGE_CONSTRAINTS); + if (!CompanyName.isValidCompanyName(trimmedName)) { + throw new ParseException(CompanyName.MESSAGE_CONSTRAINTS); } return new CompanyName(trimmedName); } diff --git a/src/main/java/seedu/address/model/person/CompanyName.java b/src/main/java/seedu/address/model/person/CompanyName.java index d4963c1f7fc..2a18f8a5518 100644 --- a/src/main/java/seedu/address/model/person/CompanyName.java +++ b/src/main/java/seedu/address/model/person/CompanyName.java @@ -5,7 +5,7 @@ /** * Represents a Company's name in the address book. - * Guarantees: immutable; is valid as declared in {@link #isValidName(String)} + * Guarantees: immutable; is valid as declared in {@link #isValidCompanyName(String)} */ public class CompanyName { @@ -27,14 +27,14 @@ public class CompanyName { */ public CompanyName(String name) { requireNonNull(name); - checkArgument(isValidName(name), MESSAGE_CONSTRAINTS); + checkArgument(isValidCompanyName(name), MESSAGE_CONSTRAINTS); companyName = name; } /** * Returns true if a given string is a valid company name. */ - public static boolean isValidName(String test) { + public static boolean isValidCompanyName(String test) { return test.length() <= 100 && test.matches(VALIDATION_REGEX); } diff --git a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java index a30897d0c81..3d88ec419c3 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java @@ -109,7 +109,7 @@ public Person toModelType() throws IllegalValueException { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, CompanyName.class.getSimpleName())); } - if (!CompanyName.isValidName(companyName)) { + if (!CompanyName.isValidCompanyName(companyName)) { throw new IllegalValueException(CompanyName.MESSAGE_CONSTRAINTS); } final CompanyName modelCompanyName = new CompanyName(companyName); diff --git a/src/test/java/seedu/address/model/person/CompanyNameTest.java b/src/test/java/seedu/address/model/person/CompanyNameTest.java index a1e83e410cb..646c4d1ed5d 100644 --- a/src/test/java/seedu/address/model/person/CompanyNameTest.java +++ b/src/test/java/seedu/address/model/person/CompanyNameTest.java @@ -22,21 +22,21 @@ public void constructor_invalidName_throwsIllegalArgumentException() { @Test public void isValidName() { // null name - assertThrows(NullPointerException.class, () -> CompanyName.isValidName(null)); + assertThrows(NullPointerException.class, () -> CompanyName.isValidCompanyName(null)); // invalid name - assertFalse(CompanyName.isValidName("")); // empty string - assertFalse(CompanyName.isValidName(" ")); // spaces only - assertFalse(CompanyName.isValidName("123456789 123456789 123456789 123456789 123456789 123456789 123456789 " + assertFalse(CompanyName.isValidCompanyName("")); // empty string + assertFalse(CompanyName.isValidCompanyName(" ")); // spaces only + assertFalse(CompanyName.isValidCompanyName("123456789 123456789 123456789 123456789 123456789 123456789 123456789 " + "123456789 123456789 123456789 1")); // contains more than 100 chracters // valid name - assertTrue(CompanyName.isValidName("Google")); // alphabets only - assertTrue(CompanyName.isValidName("711")); // numbers only - assertTrue(CompanyName.isValidName("Capital Land")); // with capital letters - assertTrue(CompanyName.isValidName("S&P 500")); // with capital letters and non-alphanumeric characters - assertTrue(CompanyName.isValidName("Essilor International Compagnie Generale d'Optique SA")); // long names + assertTrue(CompanyName.isValidCompanyName("Google")); // alphabets only + assertTrue(CompanyName.isValidCompanyName("711")); // numbers only + assertTrue(CompanyName.isValidCompanyName("Capital Land")); // with capital letters + assertTrue(CompanyName.isValidCompanyName("S&P 500")); // with capital letters and non-alphanumeric characters + assertTrue(CompanyName.isValidCompanyName("Essilor International Compagnie Generale d'Optique SA")); // long names } @Test From ff013fc41f7d7c82779f337d7f94c97888642b53 Mon Sep 17 00:00:00 2001 From: Lalelulilulela Date: Tue, 2 Apr 2024 17:30:35 +0800 Subject: [PATCH 2/4] Fix checkstyle --- .../java/seedu/address/model/person/CompanyNameTest.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/address/model/person/CompanyNameTest.java b/src/test/java/seedu/address/model/person/CompanyNameTest.java index 646c4d1ed5d..102c7860c9c 100644 --- a/src/test/java/seedu/address/model/person/CompanyNameTest.java +++ b/src/test/java/seedu/address/model/person/CompanyNameTest.java @@ -27,7 +27,8 @@ public void isValidName() { // invalid name assertFalse(CompanyName.isValidCompanyName("")); // empty string assertFalse(CompanyName.isValidCompanyName(" ")); // spaces only - assertFalse(CompanyName.isValidCompanyName("123456789 123456789 123456789 123456789 123456789 123456789 123456789 " + assertFalse(CompanyName.isValidCompanyName("123456789 123456789 123456789 123456789 123456789 123456789 " + + "123456789 " + "123456789 123456789 123456789 1")); // contains more than 100 chracters @@ -35,8 +36,10 @@ public void isValidName() { assertTrue(CompanyName.isValidCompanyName("Google")); // alphabets only assertTrue(CompanyName.isValidCompanyName("711")); // numbers only assertTrue(CompanyName.isValidCompanyName("Capital Land")); // with capital letters - assertTrue(CompanyName.isValidCompanyName("S&P 500")); // with capital letters and non-alphanumeric characters - assertTrue(CompanyName.isValidCompanyName("Essilor International Compagnie Generale d'Optique SA")); // long names + // with capital letters and non-alphanumeric characters + assertTrue(CompanyName.isValidCompanyName("S&P 500")); + // long names + assertTrue(CompanyName.isValidCompanyName("Essilor International Compagnie Generale d'Optique SA")); } @Test From faf649975b889be04ab25895b6feaf6f7217e5db Mon Sep 17 00:00:00 2001 From: Lalelulilulela Date: Tue, 2 Apr 2024 17:35:44 +0800 Subject: [PATCH 3/4] Fix test --- .../java/seedu/address/logic/parser/AddCommandParserTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java index 1c224eff3b5..2c3c80ef4ce 100644 --- a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java @@ -45,6 +45,7 @@ import seedu.address.logic.Messages; import seedu.address.logic.commands.AddCommand; import seedu.address.model.person.Address; +import seedu.address.model.person.CompanyName; import seedu.address.model.person.Email; import seedu.address.model.person.Name; import seedu.address.model.person.Person; @@ -191,7 +192,7 @@ public void parse_compulsoryFieldMissing_failure() { public void parse_invalidValue_failure() { // invalid company name assertParseFailure(parser, INVALID_COMPANY_NAME_DESC + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, Name.MESSAGE_CONSTRAINTS); + + ADDRESS_DESC_BOB + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, CompanyName.MESSAGE_CONSTRAINTS); // invalid name assertParseFailure(parser, COMPANY_NAME_DESC_BOB + INVALID_NAME_DESC + PHONE_DESC_BOB + EMAIL_DESC_BOB From f133aa1bca818f3d2b1e7f2532c0d0c7f7259fac Mon Sep 17 00:00:00 2001 From: Lalelulilulela Date: Tue, 2 Apr 2024 18:03:00 +0800 Subject: [PATCH 4/4] Add tests --- .../storage/JsonAdaptedPersonTest.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java b/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java index aead55c1015..39a2225f8b6 100644 --- a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java @@ -13,6 +13,7 @@ import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.model.person.Address; +import seedu.address.model.person.CompanyName; import seedu.address.model.person.Email; import seedu.address.model.person.Name; import seedu.address.model.person.Phone; @@ -53,7 +54,26 @@ public void toModelType_validPersonDetails_returnsPerson() throws Exception { JsonAdaptedPerson person = new JsonAdaptedPerson(BENSON); assertEquals(BENSON, person.toModelType()); } - + @Test + public void toModelType_invalidCompanyName_throwsIllegalValueException() { + JsonAdaptedPerson person = + new JsonAdaptedPerson(INVALID_COMPANY_NAME, VALID_NAME, + VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + VALID_INTERVIEWTIME, VALID_SALARY, VALID_INFO, + VALID_TAGS, VALID_PROGRAMMING_LANG, VALID_PRIORITY); + String expectedMessage = CompanyName.MESSAGE_CONSTRAINTS; + assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + @Test + public void toModelType_nullCompanyName_throwsIllegalValueException() { + JsonAdaptedPerson person = + new JsonAdaptedPerson(null, VALID_NAME, + VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + VALID_INTERVIEWTIME, VALID_SALARY, VALID_INFO, + VALID_TAGS, VALID_PROGRAMMING_LANG, VALID_PRIORITY); + String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, CompanyName.class.getSimpleName()); + assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } @Test public void toModelType_invalidName_throwsIllegalValueException() { JsonAdaptedPerson person =