From 02e7cb01fe6a06e4de0f58f13848046c03a266a9 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 11:47:51 +0800 Subject: [PATCH 01/36] Add filtering by status --- .../logic/parser/FilterCommandParser.java | 12 ++++-- .../StatusStartsWithSubstringPredicate.java | 43 +++++++++++++++++++ 2 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 src/main/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicate.java diff --git a/src/main/java/seedu/address/logic/parser/FilterCommandParser.java b/src/main/java/seedu/address/logic/parser/FilterCommandParser.java index 1e2dbfcc1ba..170aad27fa7 100644 --- a/src/main/java/seedu/address/logic/parser/FilterCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FilterCommandParser.java @@ -10,6 +10,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; import static seedu.address.logic.parser.CliSyntax.PREFIX_REMARK; import static seedu.address.logic.parser.CliSyntax.PREFIX_TIER; +import static seedu.address.logic.parser.CliSyntax.PREFIX_STATUS; import java.util.ArrayList; import java.util.Arrays; @@ -28,6 +29,7 @@ import seedu.address.model.person.predicates.NameContainsSubstringPredicate; import seedu.address.model.person.predicates.PhoneContainsSubstringPredicate; import seedu.address.model.person.predicates.RemarkContainsSubstringPredicate; +import seedu.address.model.person.predicates.StatusStartsWithSubstringPredicate; import seedu.address.model.person.predicates.TierStartsWithSubstringPredicate; import seedu.address.model.util.IncomeComparisonOperator; @@ -45,14 +47,14 @@ public FilterCommand parse(String args) throws ParseException { requireNonNull(args); ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, - PREFIX_INCOME, PREFIX_JOB, PREFIX_REMARK, PREFIX_TIER); + PREFIX_INCOME, PREFIX_JOB, PREFIX_REMARK, PREFIX_TIER, PREFIX_STATUS); argMultimap.verifyNoDuplicatePrefixesFor(PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, - PREFIX_INCOME, PREFIX_JOB, PREFIX_REMARK, PREFIX_TIER); + PREFIX_INCOME, PREFIX_JOB, PREFIX_REMARK, PREFIX_TIER, PREFIX_STATUS); // Throw an error if no filters are used long numberOfFiltersUsed = countPrefixesUsed(argMultimap, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, - PREFIX_ADDRESS, PREFIX_JOB, PREFIX_INCOME, PREFIX_REMARK, PREFIX_TIER); + PREFIX_ADDRESS, PREFIX_JOB, PREFIX_INCOME, PREFIX_REMARK, PREFIX_TIER, PREFIX_STATUS); if (numberOfFiltersUsed == 0) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, FilterCommand.MESSAGE_USAGE)); @@ -129,6 +131,10 @@ private List> collectPredicates(ArgumentMultimap argMultimap) String substring = argMultimap.getValue(PREFIX_TIER).get(); predicates.add(new TierStartsWithSubstringPredicate(substring)); } + if (argMultimap.getValue(PREFIX_STATUS).isPresent()) { + String substring = argMultimap.getValue(PREFIX_STATUS).get(); + predicates.add(new StatusStartsWithSubstringPredicate(substring)); + } return predicates; } diff --git a/src/main/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicate.java b/src/main/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicate.java new file mode 100644 index 00000000000..d845ac5e0e2 --- /dev/null +++ b/src/main/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicate.java @@ -0,0 +1,43 @@ +package seedu.address.model.person.predicates; + +import seedu.address.commons.util.StringUtil; +import seedu.address.commons.util.ToStringBuilder; +import seedu.address.model.person.Person; + +import java.util.function.Predicate; + +/** + * Tests that a {@code Person}'s assigned {@code Status} starts with a specified String. + */ +public class StatusStartsWithSubstringPredicate implements Predicate { + protected final String substring; + + public StatusStartsWithSubstringPredicate(String substring) { + this.substring = substring.toUpperCase(); + } + + @Override + public boolean test(Person person) { + return StringUtil.startsWithSubstringIgnoreCase(person.getStatus().toParsableString(), substring); + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + + // instanceof handles nulls + if (!(other instanceof StatusStartsWithSubstringPredicate)) { + return false; + } + + StatusStartsWithSubstringPredicate otherStatusContainsSubstringPredicate = (StatusStartsWithSubstringPredicate) other; + return substring.equals(otherStatusContainsSubstringPredicate.substring); + } + + @Override + public String toString() { + return new ToStringBuilder(this).add("substring", substring).toString(); + } +} From 9e88f6b2fb4ad2197c22cebfe97edaa6366b4730 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 11:53:45 +0800 Subject: [PATCH 02/36] Add unit tests for filtering by status --- ...tatusStartsWithSubstringPredicateTest.java | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 src/test/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicateTest.java diff --git a/src/test/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicateTest.java b/src/test/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicateTest.java new file mode 100644 index 00000000000..fb64fbb3548 --- /dev/null +++ b/src/test/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicateTest.java @@ -0,0 +1,109 @@ +package seedu.address.model.person.predicates; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import seedu.address.testutil.PersonBuilder; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class StatusStartsWithSubstringPredicateTest { + + @Test + public void equals() { + String firstPredicateSubstring = "first"; + String secondPredicateSubstring = "first second"; + + StatusStartsWithSubstringPredicate firstPredicate = + new StatusStartsWithSubstringPredicate(firstPredicateSubstring); + StatusStartsWithSubstringPredicate secondPredicate = + new StatusStartsWithSubstringPredicate(secondPredicateSubstring); + + // same object -> returns true + assertTrue(firstPredicate.equals(firstPredicate)); + + // same values -> returns true + StatusStartsWithSubstringPredicate firstPredicateCopy = + new StatusStartsWithSubstringPredicate(firstPredicateSubstring); + assertTrue(firstPredicate.equals(firstPredicateCopy)); + + // different types -> returns false + assertFalse(firstPredicate.equals(1)); + + // null -> returns false + assertFalse(firstPredicate.equals(null)); + + // different person -> returns false + assertFalse(firstPredicate.equals(secondPredicate)); + } + + @Test + public void test_statusStartsWithSubstring_returnsTrue() { + // Full status match + StatusStartsWithSubstringPredicate predicate = new StatusStartsWithSubstringPredicate("urgent"); + assertTrue(predicate.test(new PersonBuilder().withStatus("urgent").build())); + + // Partial status match + predicate = new StatusStartsWithSubstringPredicate("ur"); + assertTrue(predicate.test(new PersonBuilder().withStatus("urgent").build())); + + // Mixed-case substring + predicate = new StatusStartsWithSubstringPredicate("uRgEnt"); + assertTrue(predicate.test(new PersonBuilder().withStatus("URGENT").build())); + } + + @Test + public void test_emptySubstring_throwsException() { + StatusStartsWithSubstringPredicate predicate = new StatusStartsWithSubstringPredicate(""); + Assertions.assertThrows(IllegalArgumentException.class, () -> predicate.test( + new PersonBuilder().withStatus("URGENT").build())); + } + + @Test + public void test_statusDoesNotStartWithSubstring_returnsFalse() { + // Non-matching substring + StatusStartsWithSubstringPredicate predicate = new StatusStartsWithSubstringPredicate("URGENT"); + assertFalse(predicate.test(new PersonBuilder().withStatus("Non_urgent").build())); + + // Substring matches name but does not match status + predicate = new StatusStartsWithSubstringPredicate("Alice"); + assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") + .withJob("Doctor").withTier("GOLD").withStatus("URGENT").build())); + + // Substring matches phone but does not match status + predicate = new StatusStartsWithSubstringPredicate("91234567"); + assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") + .withJob("Doctor").withTier("GOLD").withStatus("URGENT").build())); + + // Substring matches email but does not match status + predicate = new StatusStartsWithSubstringPredicate("alice@email.com"); + assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") + .withJob("Doctor").withTier("GOLD").withStatus("URGENT").build())); + + // Substring matches address but does not match status + predicate = new StatusStartsWithSubstringPredicate("Main Street"); + assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") + .withJob("Doctor").withTier("GOLD").withStatus("URGENT").build())); + + // Substring matches remark but does not match status + predicate = new StatusStartsWithSubstringPredicate("Doctor"); + assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") + .withJob("Doctor").withTier("GOLD").withStatus("URGENT").build())); + } + + @Test + public void toStringMethod() { + String substring = "testing substring"; + StatusStartsWithSubstringPredicate predicate = new StatusStartsWithSubstringPredicate(substring); + + String expected = StatusStartsWithSubstringPredicate.class.getCanonicalName() + + "{substring=" + substring.toUpperCase() + "}"; + assertEquals(expected, predicate.toString()); + } +} From c06208c06f018d674dd62a30ecf38e2d4ac6ff97 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 12:01:24 +0800 Subject: [PATCH 03/36] Fix style violations --- .../seedu/address/logic/parser/FilterCommandParser.java | 2 +- .../predicates/StatusStartsWithSubstringPredicate.java | 7 ++++--- .../StatusStartsWithSubstringPredicateTest.java | 8 +++++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/FilterCommandParser.java b/src/main/java/seedu/address/logic/parser/FilterCommandParser.java index 170aad27fa7..64b2c1cc9e3 100644 --- a/src/main/java/seedu/address/logic/parser/FilterCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FilterCommandParser.java @@ -9,8 +9,8 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; import static seedu.address.logic.parser.CliSyntax.PREFIX_REMARK; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TIER; import static seedu.address.logic.parser.CliSyntax.PREFIX_STATUS; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TIER; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicate.java b/src/main/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicate.java index d845ac5e0e2..8d538731af4 100644 --- a/src/main/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicate.java +++ b/src/main/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicate.java @@ -1,11 +1,11 @@ package seedu.address.model.person.predicates; +import java.util.function.Predicate; + import seedu.address.commons.util.StringUtil; import seedu.address.commons.util.ToStringBuilder; import seedu.address.model.person.Person; -import java.util.function.Predicate; - /** * Tests that a {@code Person}'s assigned {@code Status} starts with a specified String. */ @@ -32,7 +32,8 @@ public boolean equals(Object other) { return false; } - StatusStartsWithSubstringPredicate otherStatusContainsSubstringPredicate = (StatusStartsWithSubstringPredicate) other; + StatusStartsWithSubstringPredicate otherStatusContainsSubstringPredicate = + (StatusStartsWithSubstringPredicate) other; return substring.equals(otherStatusContainsSubstringPredicate.substring); } diff --git a/src/test/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicateTest.java b/src/test/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicateTest.java index fb64fbb3548..c194a5de4d7 100644 --- a/src/test/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicateTest.java +++ b/src/test/java/seedu/address/model/person/predicates/StatusStartsWithSubstringPredicateTest.java @@ -1,13 +1,15 @@ package seedu.address.model.person.predicates; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; 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 org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import seedu.address.testutil.PersonBuilder; + public class StatusStartsWithSubstringPredicateTest { @Test From 7f5fc1cb10e3f40fea101a727925a8ea8f0893da Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 12:17:12 +0800 Subject: [PATCH 04/36] Reduce bottom margin of headers --- docs/_sass/minima/_base.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_sass/minima/_base.scss b/docs/_sass/minima/_base.scss index 0d3f6e80ced..830447baaf9 100644 --- a/docs/_sass/minima/_base.scss +++ b/docs/_sass/minima/_base.scss @@ -43,7 +43,7 @@ h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, %vertical-rhythm { - margin-bottom: $spacing-unit / 2; + margin-bottom: $spacing-unit / 3; } hr { From df592922f78a3878c50e59890af976e1c5a1495f Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 12:25:01 +0800 Subject: [PATCH 05/36] Trigger github pages redeployment --- docs/_sass/minima/_base.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_sass/minima/_base.scss b/docs/_sass/minima/_base.scss index 830447baaf9..61ea01ced62 100644 --- a/docs/_sass/minima/_base.scss +++ b/docs/_sass/minima/_base.scss @@ -43,7 +43,7 @@ h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, %vertical-rhythm { - margin-bottom: $spacing-unit / 3; + margin-bottom: $spacing-unit / 3.0; } hr { From 76b804c23cdd20ac1233e30cd32bf0b2daae14f9 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 12:51:16 +0800 Subject: [PATCH 06/36] Fix docs root directory in workflow --- .github/workflows/jekyll-gh-pages.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml index 0ebd768bf2a..704fd9ed7fe 100644 --- a/.github/workflows/jekyll-gh-pages.yml +++ b/.github/workflows/jekyll-gh-pages.yml @@ -28,13 +28,16 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + - name: Setup Pages uses: actions/configure-pages@v5 + - name: Build with Jekyll uses: actions/jekyll-build-pages@v1 with: - source: ./ + source: ./docs destination: ./_site + - name: Upload artifact uses: actions/upload-pages-artifact@v3 From 9ca35d01ecf2d6fedbf9b45c03f6d6332e8f1cce Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 12:52:06 +0800 Subject: [PATCH 07/36] Fix docs root directory in workflow --- .github/workflows/jekyll-gh-pages.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml index 704fd9ed7fe..60231607ead 100644 --- a/.github/workflows/jekyll-gh-pages.yml +++ b/.github/workflows/jekyll-gh-pages.yml @@ -28,16 +28,13 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - - name: Setup Pages uses: actions/configure-pages@v5 - - name: Build with Jekyll uses: actions/jekyll-build-pages@v1 with: source: ./docs destination: ./_site - - name: Upload artifact uses: actions/upload-pages-artifact@v3 From 3aaae65caf5fc874a9ae94430c4b2e76e79ca956 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 13:23:12 +0800 Subject: [PATCH 08/36] Remove italics from block quote --- docs/_sass/minima/_base.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_sass/minima/_base.scss b/docs/_sass/minima/_base.scss index 61ea01ced62..9e900e87ccf 100644 --- a/docs/_sass/minima/_base.scss +++ b/docs/_sass/minima/_base.scss @@ -43,7 +43,7 @@ h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, %vertical-rhythm { - margin-bottom: $spacing-unit / 3.0; + margin-bottom: $spacing-unit / 2; } hr { @@ -142,7 +142,7 @@ blockquote { border-left: 4px solid $brand-color-light; padding-left: $spacing-unit / 2; @include relative-font-size(1.125); - font-style: italic; + font-style: default; > :last-child { margin-bottom: 0; From bdb2b6d5e262d16141f3619d3ca223fa4becb249 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 13:41:10 +0800 Subject: [PATCH 09/36] Reduce spacing between paragraphs --- docs/_sass/minima/_layout.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_sass/minima/_layout.scss b/docs/_sass/minima/_layout.scss index ca99f981701..7fd58942c6c 100644 --- a/docs/_sass/minima/_layout.scss +++ b/docs/_sass/minima/_layout.scss @@ -176,8 +176,8 @@ .post-content { margin-bottom: $spacing-unit; - h1, h2, h3 { margin-top: $spacing-unit * 2 } - h4, h5, h6 { margin-top: $spacing-unit } + h1 { margin-top: $spacing-unit * 2 } + h2, h3, h4, h5, h6 { margin-top: $spacing-unit } h2 { @include relative-font-size(1.75); From 26f28c709ea097f16608721972934ffb800ffd92 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 13:45:32 +0800 Subject: [PATCH 10/36] Finetune spacing between paragraphs --- docs/_sass/minima/_layout.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_sass/minima/_layout.scss b/docs/_sass/minima/_layout.scss index 7fd58942c6c..9f430364741 100644 --- a/docs/_sass/minima/_layout.scss +++ b/docs/_sass/minima/_layout.scss @@ -177,7 +177,7 @@ margin-bottom: $spacing-unit; h1 { margin-top: $spacing-unit * 2 } - h2, h3, h4, h5, h6 { margin-top: $spacing-unit } + h2, h3, h4, h5, h6 { margin-top: $spacing-unit * 1.15 } h2 { @include relative-font-size(1.75); From 8dae1cdf4462e4b36200b911645d7e8f1975bd0c Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 13:49:10 +0800 Subject: [PATCH 11/36] Replace Ui placeholder image with real image --- docs/UserGuide.md | 5 +++-- docs/images/Ui.png | Bin 187380 -> 0 bytes 2 files changed, 3 insertions(+), 2 deletions(-) delete mode 100644 docs/images/Ui.png diff --git a/docs/UserGuide.md b/docs/UserGuide.md index ab5bbe163dd..69d371742f7 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -135,8 +135,9 @@ Move the .jar file you downloaded into this folder. 3. Run the application: - Type the following command: **`java -jar agentassist.jar`** and press **Enter**. - - A window similar to the below image should appear in a few seconds. You will see a graphical user interface with sample contact information already added.

- ![Ui](images/Ui.png) + - A window similar to the below image should appear in a few seconds. You will see a graphical user interface with sample contact information already added.
+ UI + 4. 🎉 **Congratulations! AgentAssist is now up and running!** 🎉 You're all set to start using AgentAssist to manage your contacts, track your sales, and boost your productivity! diff --git a/docs/images/Ui.png b/docs/images/Ui.png deleted file mode 100644 index 9c7099520b0a8253947742345d8686b2c6354cf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187380 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 From 6c4fdcda07bbcfe9f935406da706e8977929f54f Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 13:51:40 +0800 Subject: [PATCH 12/36] Add ui split view images --- docs/UserGuide.md | 1 + docs/images/Ui.png | Bin 0 -> 122809 bytes docs/images/UiSplitView.png | Bin 0 -> 199409 bytes 3 files changed, 1 insertion(+) create mode 100644 docs/images/Ui.png create mode 100644 docs/images/UiSplitView.png diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 69d371742f7..4d50a62fb28 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -144,6 +144,7 @@ Move the .jar file you downloaded into this folder. ## 3.2 Graphical User Interface (GUI) Layout +UISplitView To learn more about how to use commands in AgentAssist, proceed to the next section. diff --git a/docs/images/Ui.png b/docs/images/Ui.png new file mode 100644 index 0000000000000000000000000000000000000000..758edc5fad1104fcd4928e3d3afaf6968a778f65 GIT binary patch literal 122809 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

  • {M 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�AZ0D==3D4=$_!pvg%S`WY5@09AflGq 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 I>N?&051tAc=l}o! literal 0 HcmV?d00001 From 54007997afb0c7baefa48fdb32654a5e1bbab7e2 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 13:52:08 +0800 Subject: [PATCH 13/36] Update example flag --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 4d50a62fb28..caeaf55c070 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -162,7 +162,7 @@ Let's take a look at the structure in more detail: | **Components** | **Description** | **Example** | |:----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------| | **Command** | The action you want AgentAssist to perform. | `add` | -| **Flag(s)** | Modifiers that specify what kind of data is being handled.

    Flag(s) are typically 1-2 letters followed by a backslash. | `n/`, `p/`, `r/`, `rn/` | +| **Flag(s)** | Modifiers that specify what kind of data is being handled.

    Flag(s) are typically 1-2 letters followed by a backslash. | `n/`, `e/`, `r/`, `rn/` | | **Argument(s)** | The values or inputs the command uses, such as client data or specific details.

    This guide may represent it as a placeholder using ``. | `John Doe`, `john@example.com` | Here's an example that uses multiple flags and arguments: From df952aa6220a6e6bfe010a0a5b1cd244ce281434 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 13:55:45 +0800 Subject: [PATCH 14/36] Fix embedded link to commands section --- docs/UserGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index caeaf55c070..09892050b66 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -114,7 +114,7 @@ Move the .jar file you downloaded into this folder. - On Linux, open your **Terminal** application from the system menu. 2. **Navigate your terminal to the folder where you saved the AgentAssist application:** - - To do this, use the `cd` command followed by the path to your folder.\ + - To do this, use the `cd` command followed by the path to your folder. > ℹ️ **Tip:** Follow the guide below to navigate to your folder in the terminal: > >
    Click here to learn how to navigate to your folder in terminal @@ -193,7 +193,7 @@ Here is a reference table that briefly summarizes available commands: | `help` | Displays a list of available commands and their usage. | | `exit` | Exits the AgentAssist application. | -Refer to the [Commands Section](#commands-section) for more comprehensive details of each command. +Refer to the [Commands Section](#5-commands) for more comprehensive details of each command. ## 4.3 Flags @@ -273,7 +273,7 @@ Some initial commands to try: The GUI will dynamically update to show the results of your commands, making it easy to see the impact of your actions in real time. -Refer to the [Commands Section](#commands-section) for more comprehensive details of each command. +Refer to the [Commands Section](#5-commands) for more comprehensive details of each command. > 💡 **Pro Tip:** > Combine commands like `filter` followed by `edit` or `delete` to manage your contacts more effectively. From 9d7d213d9b86d46e442437a785972afc0eb490a8 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:00:42 +0800 Subject: [PATCH 15/36] Add page breaks for better printing --- docs/UserGuide.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 09892050b66..c24d5f48ff5 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -16,6 +16,8 @@ Let’s begin and get you up to speed with AgentAssist! -------------------------------------------------------------------------------------------------------------------- +
    + # Table of Contents 1. [Introduction](#1-introduction) @@ -40,6 +42,7 @@ Let’s begin and get you up to speed with AgentAssist! 7. [Known Issues](#7-known-issues) 8. [Command Summary](#8-command-summary) +
    # 1. Introduction ## 1.1 What is AgentAssist? @@ -62,6 +65,8 @@ Maximize your productivity, minimize your response time, and amplify your sales -------------------------------------------------------------------------------------------------------------------- +
    + # 2. Important Prerequisites Before you start using AgentAssist, there are a few prerequisites to ensure you get the most out of the application: @@ -77,6 +82,8 @@ AgentAssist allows you to manage client data like names, phone numbers, emails, 🎉 **By meeting these prerequisites, you'll be ready to make the most of AgentAssist’s fast, keyboard-driven interface and powerful data management features.** 🎉 +
    + # 3. Getting Started Welcome to AgentAssist. Here’s how to get up and running quickly and easily. @@ -142,6 +149,8 @@ Move the .jar file you downloaded into this folder. 4. 🎉 **Congratulations! AgentAssist is now up and running!** 🎉 You're all set to start using AgentAssist to manage your contacts, track your sales, and boost your productivity! +
    + ## 3.2 Graphical User Interface (GUI) Layout UISplitView @@ -150,6 +159,8 @@ To learn more about how to use commands in AgentAssist, proceed to the next sect -------------------------------------------------------------------------------------------------------------------- +
    + # 4. Understanding Commands in AgentAssist {#using-agentassist} The true power of **AgentAssist** lies in efficiently using commands. Before diving into specific commands, let’s break down the basic structure of a command. @@ -195,6 +206,8 @@ Here is a reference table that briefly summarizes available commands: Refer to the [Commands Section](#5-commands) for more comprehensive details of each command. +
    + ## 4.3 Flags AgentAssist uses flags as a shorthand for different options in commands. Flags help you specify what kind of information you are providing, allowing you to write shorter and more efficient commands, improving your workflow. @@ -219,6 +232,8 @@ Here’s a reference table of available flags and the type of data they correspo > > Flags are typically derived from the first letter of their corresponding data type (e.g., `n/` for `name`), making them easy to remember! +
    + ## 4.4 Arguments Arguments are the values that follow each flag in a command. **Arguments cannot be empty**, and each must meet specific parsing and format requirements to ensure proper execution of the command. @@ -244,6 +259,8 @@ Refer to the table below for more details. > > Providing a flag without an accompanying argument will result in an error and prevent the command from executing properly. +
    + ## 4.5 Using Commands To get started, simply type a command into the command box and hit **Enter**. @@ -281,6 +298,8 @@ Refer to the [Commands Section](#5-commands) for more comprehensive details of e -------------------------------------------------------------------------------------------------------------------- +
    + # 5. Commands ## 5.1 How to Read Commands @@ -697,6 +716,8 @@ The data in AgentAssist is automatically saved as a [JSON](https://developer.moz -------------------------------------------------------------------------------------------------------------------- +
    + ## 6. FAQ ### How do I transfer my data to another Computer? @@ -720,6 +741,8 @@ Each credit card tier is visually distinguished in the UI: Gold is marked with a -------------------------------------------------------------------------------------------------------------------- +
    + ## 8. Command Summary | **Action** | **Command Format** | **Example** | From 816ee1b3b68e8973d675f1ac11a428c4b04dff12 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:27:12 +0800 Subject: [PATCH 16/36] Add spacing before code block --- docs/_sass/minima/_base.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_sass/minima/_base.scss b/docs/_sass/minima/_base.scss index 9e900e87ccf..6e30fb2e3ea 100644 --- a/docs/_sass/minima/_base.scss +++ b/docs/_sass/minima/_base.scss @@ -165,6 +165,7 @@ code { border: 1px solid $brand-color-light; border-radius: 3px; background-color: $code-background-color; + margin-top: 0.25em } code { From b3979ad2024e28f3b19a5058188d9fce241c03ca Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:47:56 +0800 Subject: [PATCH 17/36] Force code blocks to wrap around instead of scroll --- docs/_sass/minima/_base.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/_sass/minima/_base.scss b/docs/_sass/minima/_base.scss index 6e30fb2e3ea..361f6d90eb1 100644 --- a/docs/_sass/minima/_base.scss +++ b/docs/_sass/minima/_base.scss @@ -166,6 +166,9 @@ code { border-radius: 3px; background-color: $code-background-color; margin-top: 0.25em + white-space: pre-wrap; + overflow-wrap: break-word; + word-break: break-word; } code { From 6c749ae3a8415ab6219fd226be8b950560bb5e38 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:51:55 +0800 Subject: [PATCH 18/36] Fix funky spacings in some code blocks --- docs/UserGuide.md | 94 +++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 53 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index c24d5f48ff5..7763c8a1ee4 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -116,38 +116,26 @@ Move the .jar file you downloaded into this folder. ### Step 4: Run the Application 1. **Open a command terminal** - - On Windows, press `Windows Key + R`, type `cmd`, and press `Enter`. - - On macOS, press `Command + Space`, type `Terminal`, and press `Enter`. - - On Linux, open your **Terminal** application from the system menu. + - **Windows**: press `Windows Key + R`, type `cmd`, and press `Enter`. + - **macOS**: press `Command + Space`, type `Terminal`, and press `Enter`. + - **Linux**: open your **Terminal** application from the system menu. + 2. **Navigate your terminal to the folder where you saved the AgentAssist application:** - - To do this, use the `cd` command followed by the path to your folder. - > ℹ️ **Tip:** Follow the guide below to navigate to your folder in the terminal: - > - >
    Click here to learn how to navigate to your folder in terminal - > - > - **Windows**: Use the command `cd `. - For example, if **AgentAssist** is stored in the `Downloads` folder: - > ```bash - > cd C:\Users\\Downloads - > ``` - > - > - **macOS/Linux**: Use the command `cd `. - For example, if **AgentAssist** is stored in the `Downloads` folder: - > ```bash - > cd /Users//Downloads - > ``` - > - >
    - -3. Run the application: - - Type the following command: **`java -jar agentassist.jar`** and press **Enter**. - - A window similar to the below image should appear in a few seconds. You will see a graphical user interface with sample contact information already added.
    + - In the terminal, type: `cd ` and press **Enter**. (Replace with the actual location of AgentAssist.) + - For example, if **AgentAssist** is stored in your **Downloads** folder: + - **Windows**: `cd C:\Users\\Downloads` + - **macOS/Linux**: `cd /Users//Downloads` + + +3. **Run the application:** + - In the terminal, type: `java -jar agentassist.jar` and press **Enter**. + - After a few seconds, a window similar to the below image should appear. This is the AgentAssist interface, with sample contact information already loaded for you to explore.
    UI 4. 🎉 **Congratulations! AgentAssist is now up and running!** 🎉 - You're all set to start using AgentAssist to manage your contacts, track your sales, and boost your productivity! + You're all set to start using AgentAssist to manage your contacts, track your sales, and boost your productivity.
    @@ -334,9 +322,9 @@ add n/ p/ e/ a/
    j/ i/ [t/ p/ e/ a/
    j/ i/ [t/ ] [rn/ ] - ``` +``` +add n/ p/ e/ a/
    j/ i/ [t/ ] [rn/ ] +``` * Mandatory Fields: `n/`, `p/`, `e/`, `a/`, `j/`, `i/` * Optional Fields: `t/`, `rn/` @@ -401,25 +389,25 @@ For detailed explanations of each flag and acceptable arguments, refer to Sectio **Examples:** - Edit only 1 specific field: - ``` - edit 12 a/ Ridge View Residential College - ``` - ``` - edit 12 t/ gold - ``` + ``` + edit 12 a/ Ridge View Residential College + ``` + ``` + edit 12 t/ gold + ``` - Edit multiple fields at the same time: - ``` - edit 12 p/ 99887766 e/ mrtan_newemail@ntu.sg j/ unemployed i/ 0 t/ reject - ``` + ``` + edit 12 p/ 99887766 e/ mrtan_newemail@ntu.sg j/ unemployed i/ 0 t/ reject + ``` - Append new remark onto existing one: - ``` - edit 12 ra/ Recently received Gordon E. Moore Award - ``` + ``` + edit 12 ra/ Recently received Gordon E. Moore Award + ``` - Replace all remark(s) with a new remark: - ``` - edit 69 rn/ Do not call, angry about calls - ``` + ``` + edit 69 rn/ Do not call, angry about calls + ``` **What to Expect:** - **On Success:** @@ -455,13 +443,13 @@ For detailed explanations of each flag and acceptable arguments, refer to Sectio **Examples:** - Remove a client with a specific index (e.g. at index 12): - ``` - delete 12 - ``` + ``` + delete 12 + ``` Confirmation prompt: - ``` - This will permanently delete this contact. Are you sure you want to execute this command? (y/n) - ``` + ``` + This will permanently delete this contact. Are you sure you want to execute this command? (y/n) + ``` **What to Expect:** - **On Success (after confirming with y/yes):** @@ -631,9 +619,9 @@ view index **Examples:** - **View client no.1** - ``` - view 1 - ``` + ``` + view 1 + ``` This will open a split view showing detailed information for the client at index 1. **What to Expect:** From 47a9f08b3d4910e260c74f0bbf0fdd498a4d9ccf Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:53:16 +0800 Subject: [PATCH 19/36] Remove last page break --- docs/UserGuide.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 7763c8a1ee4..5c5fb3c3508 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -729,7 +729,6 @@ Each credit card tier is visually distinguished in the UI: Gold is marked with a -------------------------------------------------------------------------------------------------------------------- -
    ## 8. Command Summary From de094fd78ea5e5e5882a0e742148c7240a933f05 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:54:30 +0800 Subject: [PATCH 20/36] Adding horizontal line between sections 2 and 3 --- docs/UserGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 5c5fb3c3508..af06631788d 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -82,6 +82,7 @@ AgentAssist allows you to manage client data like names, phone numbers, emails, 🎉 **By meeting these prerequisites, you'll be ready to make the most of AgentAssist’s fast, keyboard-driven interface and powerful data management features.** 🎉 +--------------------------------------------------------------------------------------------------------------------
    # 3. Getting Started From 132bf88f90c14b575b61fd79e19da3edddf35054 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:55:41 +0800 Subject: [PATCH 21/36] Add missing semicolon in css file --- docs/_sass/minima/_base.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_sass/minima/_base.scss b/docs/_sass/minima/_base.scss index 361f6d90eb1..cc3b4c06304 100644 --- a/docs/_sass/minima/_base.scss +++ b/docs/_sass/minima/_base.scss @@ -165,7 +165,7 @@ code { border: 1px solid $brand-color-light; border-radius: 3px; background-color: $code-background-color; - margin-top: 0.25em + margin-top: 0.25em; white-space: pre-wrap; overflow-wrap: break-word; word-break: break-word; From 87caf53c1f0cd597240279481d4683e5f191dfbc Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:56:52 +0800 Subject: [PATCH 22/36] Replace default landing ui demo w split view ui --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 16467ce7a4b..af139771400 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,7 @@ title: AgentAssist [![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) [![codecov](https://codecov.io/gh/se-edu/addressbook-level3/branch/master/graph/badge.svg)](https://codecov.io/gh/se-edu/addressbook-level3) -![Ui](images/Ui.png) +![UiSplitView](images/UiSplitView.png) **AgentAssist is a desktop application, designed for banking sales agents to help with managing their contact details.** From 69802bb88fec5fe9c68e3a1d18acf729f9927f30 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 20:58:02 +0800 Subject: [PATCH 23/36] Refactor PUML diagrams from Person to Client --- .../diagrams/ArchitectureSequenceDiagram.puml | 2 +- docs/diagrams/BetterModelClassDiagram.puml | 22 ++++++------ docs/diagrams/DeleteSequenceDiagram.puml | 2 +- docs/diagrams/ModelClassDiagram.puml | 34 +++++++++---------- docs/diagrams/StorageClassDiagram.puml | 8 ++--- docs/diagrams/UiClassDiagram.puml | 24 ++++++------- 6 files changed, 46 insertions(+), 46 deletions(-) diff --git a/docs/diagrams/ArchitectureSequenceDiagram.puml b/docs/diagrams/ArchitectureSequenceDiagram.puml index b8b3310ff7a..97e2730e75b 100644 --- a/docs/diagrams/ArchitectureSequenceDiagram.puml +++ b/docs/diagrams/ArchitectureSequenceDiagram.puml @@ -14,7 +14,7 @@ activate ui UI_COLOR ui -[UI_COLOR]> logic : execute("delete 1") activate logic LOGIC_COLOR -logic -[LOGIC_COLOR]> model : deletePerson(p) +logic -[LOGIC_COLOR]> model : deleteClient(c) activate model MODEL_COLOR model -[MODEL_COLOR]-> logic diff --git a/docs/diagrams/BetterModelClassDiagram.puml b/docs/diagrams/BetterModelClassDiagram.puml index 4c346a71d38..7a0020c81d7 100644 --- a/docs/diagrams/BetterModelClassDiagram.puml +++ b/docs/diagrams/BetterModelClassDiagram.puml @@ -4,18 +4,18 @@ skinparam arrowThickness 1.1 skinparam arrowColor MODEL_COLOR skinparam classBackgroundColor MODEL_COLOR -AgentAssist *-right-> "1" UniquePersonList +AgentAssist *-right-> "1" UniqueClientList -UniquePersonList -right-> Person +UniqueClientList -right-> Client -Person *--> Name -Person *--> Phone -Person *--> Email -Person *--> Address -Person *--> Tier -Person *--> Job -Person *--> Income -Person *--> Status -Person *--> Remark +Client *--> Name +Client *--> Phone +Client *--> Email +Client *--> Address +Client *--> Tier +Client *--> Job +Client *--> Income +Client *--> Status +Client *--> Remark @enduml diff --git a/docs/diagrams/DeleteSequenceDiagram.puml b/docs/diagrams/DeleteSequenceDiagram.puml index a5c44f77102..c3a894aecbe 100644 --- a/docs/diagrams/DeleteSequenceDiagram.puml +++ b/docs/diagrams/DeleteSequenceDiagram.puml @@ -49,7 +49,7 @@ deactivate AgentAssistParser LogicManager -> DeleteCommand : execute(m) activate DeleteCommand -DeleteCommand -> Model : deletePerson(1) +DeleteCommand -> Model : deleteClient(1) activate Model Model --> DeleteCommand diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index ccab7dc75d8..fb3d347ea98 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -11,8 +11,8 @@ Class AgentAssist Class ModelManager Class UserPrefs -Class UniquePersonList -Class Person +Class UniqueClientList +Class Client Class Address Class Email Class Name @@ -36,20 +36,20 @@ ModelManager -left-> "1" AgentAssist ModelManager -right-> "1" UserPrefs UserPrefs .up.|> ReadOnlyUserPrefs -AgentAssist *--> "1" UniquePersonList -UniquePersonList --> "~* all" Person -Person *--> "1" Name -Person *--> "1" Phone -Person *--> "1" Email -Person *--> "1" Address -Person *--> "1" Remark -Person *--> "1" Tier -Person *--> "1" Status -Person *--> "1" Job -Person *--> "1" Income - -Person -[hidden]up--> I -UniquePersonList -[hidden]right-> I +AgentAssist *--> "1" UniqueClientList +UniqueClientList --> "~* all" Client +Client *--> "1" Name +Client *--> "1" Phone +Client *--> "1" Email +Client *--> "1" Address +Client *--> "1" Remark +Client *--> "1" Tier +Client *--> "1" Status +Client *--> "1" Job +Client *--> "1" Income + +Client -[hidden]up--> I +UniqueClientList -[hidden]right-> I Name -[hidden]right-> Phone Phone -[hidden]right-> Address @@ -58,5 +58,5 @@ Email -[hidden]right-> Tier Tier -[hidden]right-> Remark Remark -[hidden]right-> Status -ModelManager --> "~* filtered" Person +ModelManager --> "~* filtered" Client @enduml diff --git a/docs/diagrams/StorageClassDiagram.puml b/docs/diagrams/StorageClassDiagram.puml index 88a1d5d6776..226e27091bf 100644 --- a/docs/diagrams/StorageClassDiagram.puml +++ b/docs/diagrams/StorageClassDiagram.puml @@ -18,7 +18,7 @@ package "AgentAssist Storage" #F4F6F6{ Class "<>\nAgentAssistStorage" as AgentAssistStorage Class JsonAgentAssistStorage Class JsonSerializableAgentAssist -Class JsonAdaptedPerson +Class JsonAdaptedClient Class JsonAdaptedTier Class JsonAdaptedStatus } @@ -38,8 +38,8 @@ Storage -right-|> AgentAssistStorage JsonUserPrefsStorage .up.|> UserPrefsStorage JsonAgentAssistStorage .up.|> AgentAssistStorage JsonAgentAssistStorage ..> JsonSerializableAgentAssist -JsonSerializableAgentAssist --> "*" JsonAdaptedPerson -JsonAdaptedPerson --> "1" JsonAdaptedTier -JsonAdaptedPerson --> "1" JsonAdaptedStatus +JsonSerializableAgentAssist --> "*" JsonAdaptedClient +JsonAdaptedClient --> "1" JsonAdaptedTier +JsonAdaptedClient --> "1" JsonAdaptedStatus @enduml diff --git a/docs/diagrams/UiClassDiagram.puml b/docs/diagrams/UiClassDiagram.puml index dafd2c770e6..cddf9d25746 100644 --- a/docs/diagrams/UiClassDiagram.puml +++ b/docs/diagrams/UiClassDiagram.puml @@ -11,9 +11,9 @@ Class UiManager Class MainWindow Class HelpWindow Class ResultDisplay -Class PersonListPanel -Class PersonCard -Class PersonDetailPanel +Class ClientListPanel +Class ClientCard +Class ClientDetailPanel Class StatusBarFooter Class CommandBox } @@ -33,29 +33,29 @@ UiManager .left.|> Ui UiManager -down-> "1" MainWindow MainWindow *-down-> "1" CommandBox MainWindow *-down-> "1" ResultDisplay -MainWindow *-down-> "1" PersonListPanel -MainWindow *-down-> "1" PersonDetailPanel +MainWindow *-down-> "1" ClientListPanel +MainWindow *-down-> "1" ClientDetailPanel MainWindow *-down-> "1" StatusBarFooter MainWindow --> "0..1" HelpWindow -PersonListPanel -down-> "*" PersonCard +ClientListPanel -down-> "*" ClientCard MainWindow -left-|> UiPart ResultDisplay --|> UiPart CommandBox --|> UiPart -PersonListPanel --|> UiPart -PersonCard --|> UiPart -PersonDetailPanel --|> UiPart +ClientListPanel --|> UiPart +ClientCard --|> UiPart +ClientDetailPanel --|> UiPart StatusBarFooter --|> UiPart HelpWindow --|> UiPart -PersonCard ..> Model -PersonDetailPanel ..> Model +ClientCard ..> Model +ClientDetailPanel ..> Model UiManager -right-> Logic MainWindow -left-> Logic -PersonListPanel -[hidden]left- HelpWindow +ClientListPanel -[hidden]left- HelpWindow HelpWindow -[hidden]left- CommandBox CommandBox -[hidden]left- ResultDisplay ResultDisplay -[hidden]left- StatusBarFooter From 475f17dd1d3e9fa9059199b79fb58780f75bb2ed Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 20:58:45 +0800 Subject: [PATCH 24/36] Refactor logic sequence diagram from Person to Client --- docs/diagrams/tracing/LogicSequenceDiagram.puml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/diagrams/tracing/LogicSequenceDiagram.puml b/docs/diagrams/tracing/LogicSequenceDiagram.puml index 96694f7cb7e..101e41baf30 100644 --- a/docs/diagrams/tracing/LogicSequenceDiagram.puml +++ b/docs/diagrams/tracing/LogicSequenceDiagram.puml @@ -14,7 +14,7 @@ create ecp abp -> ecp abp -> ecp ++: parse(arguments) create ec -ecp -> ec ++: index, editPersonDescriptor +ecp -> ec ++: index, editClientDescriptor ec --> ecp -- ecp --> abp --: command abp --> logic --: command From 6700749970d91711b59317b2e9cbc1cebe2a171f Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 21:02:48 +0800 Subject: [PATCH 25/36] Refactor customer/person to client in DG --- docs/DeveloperGuide.md | 96 +++++++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6dcf75ecd97..da92f74b884 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -74,7 +74,7 @@ The **API** of this component is specified in [`Ui.java`](https://github.com/se- ![Structure of the UI Component](images/UiClassDiagram.png) -The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `PersonListPanel`, `StatusBarFooter` etc. All these, including the `MainWindow`, inherit from the abstract `UiPart` class which captures the commonalities between classes that represent parts of the visible GUI. +The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `ClientListPanel`, `StatusBarFooter` etc. All these, including the `MainWindow`, inherit from the abstract `UiPart` class which captures the commonalities between classes that represent parts of the visible GUI. The `UI` component uses the JavaFx UI framework. The layout of these UI parts are defined in matching `.fxml` files that are in the `src/main/resources/view` folder. For example, the layout of the [`MainWindow`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/MainWindow.java) is specified in [`MainWindow.fxml`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/resources/view/MainWindow.fxml) @@ -83,7 +83,7 @@ The `UI` component, * executes user commands using the `Logic` component. * listens for changes to `Model` data so that the UI can be updated with the modified data. * keeps a reference to the `Logic` component, because the `UI` relies on the `Logic` to execute commands. -* depends on some classes in the `Model` component, as it displays `Person` object residing in the `Model`. +* depends on some classes in the `Model` component, as it displays `Client` object residing in the `Model`. ### Logic component @@ -104,7 +104,7 @@ How the `Logic` component works: 1. When `Logic` is called upon to execute a command, it is passed to an `AgentAssistParser` object which in turn creates a parser that matches the command (e.g., `DeleteCommandParser`) and uses it to parse the command. 1. This results in a `Command` object (more precisely, an object of one of its subclasses e.g., `DeleteCommand`) which is executed by the `LogicManager`. -1. The command can communicate with the `Model` when it is executed (e.g. to delete a person).
    +1. The command can communicate with the `Model` when it is executed (e.g. to delete a client).
    Note that although this is shown as a single step in the diagram above (for simplicity), in the code it can take several interactions (between the command object and the `Model`) to achieve. 1. The result of the command execution is encapsulated as a `CommandResult` object which is returned back from `Logic`. @@ -125,8 +125,8 @@ How the parsing works: The `Model` component, -* stores the address book data i.e., all `Person` objects (which are contained in a `UniquePersonList` object). -* stores the currently 'selected' `Person` objects (e.g., results of a search query) as a separate _filtered_ list which is exposed to outsiders as an unmodifiable `ObservableList` that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list change. +* stores the address book data i.e., all `Client` objects (which are contained in a `UniqueClientList` object). +* stores the currently 'selected' `Client` objects (e.g., results of a search query) as a separate _filtered_ list which is exposed to outsiders as an unmodifiable `ObservableList` that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list change. * stores a `UserPref` object that represents the user’s preferences. This is exposed to the outside as a `ReadOnlyUserPref` objects. * does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components) @@ -169,11 +169,11 @@ Step 1. The user launches the application for the first time. The `VersionedAgen ![UndoRedoState0](images/UndoRedoState0.png) -Step 2. The user executes `delete 5` command to delete the 5th person in the address book. The `delete` command calls `Model#commitAgentAssist()`, causing the modified state of the address book after the `delete 5` command executes to be saved in the `agentAssistStateList`, and the `currentStatePointer` is shifted to the newly inserted address book state. +Step 2. The user executes `delete 5` command to delete the 5th client in the address book. The `delete` command calls `Model#commitAgentAssist()`, causing the modified state of the address book after the `delete 5` command executes to be saved in the `agentAssistStateList`, and the `currentStatePointer` is shifted to the newly inserted address book state. ![UndoRedoState1](images/UndoRedoState1.png) -Step 3. The user executes `add n/David …​` to add a new person. The `add` command also calls `Model#commitAgentAssist()`, causing another modified address book state to be saved into the `agentAssistStateList`. +Step 3. The user executes `add n/David …​` to add a new client. The `add` command also calls `Model#commitAgentAssist()`, causing another modified address book state to be saved into the `agentAssistStateList`. ![UndoRedoState2](images/UndoRedoState2.png) @@ -181,7 +181,7 @@ Step 3. The user executes `add n/David …​` to add a new person. The `add` co -Step 4. The user now decides that adding the person was a mistake, and decides to undo that action by executing the `undo` command. The `undo` command will call `Model#undoAgentAssist()`, which will shift the `currentStatePointer` once to the left, pointing it to the previous address book state, and restores the address book to that state. +Step 4. The user now decides that adding the client was a mistake, and decides to undo that action by executing the `undo` command. The `undo` command will call `Model#undoAgentAssist()`, which will shift the `currentStatePointer` once to the left, pointing it to the previous address book state, and restores the address book to that state. ![UndoRedoState3](images/UndoRedoState3.png) @@ -230,7 +230,7 @@ The following activity diagram summarizes what happens when a user executes a ne * **Alternative 2:** Individual command knows how to undo/redo by itself. - * Pros: Will use less memory (e.g. for `delete`, just save the person being deleted). + * Pros: Will use less memory (e.g. for `delete`, just save the client being deleted). * Cons: We must ensure that the implementation of each individual command are correct. _{more aspects and alternatives to be added}_ @@ -262,7 +262,7 @@ _{Explain here how the data archiving feature will be implemented}_ * prefer desktop apps over other types * can type fast * prefers typing to mouse interactions -* needs a fast way to access data, and see relevant customer information at a glance while on a call with the customer +* needs a fast way to access data, and see relevant client information at a glance while on a call with the client * is reasonably comfortable using CLI apps **Value proposition**: manage contacts faster than a typical mouse/GUI driven app @@ -275,26 +275,26 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli | Priority | As a …​ | I want to …​ | So that I can…​ | |----------|-----------------|----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------| | `* * *` | user | save current data | when I close & open the app, details I have added persist | -| `* * *` | user | be able to edit data of my customer | I can change customer details without having to delete a contact and re-add it with the new details | -| `* * *` | banking agent | add a customer | I can save the records and details of the new customer | -| `* * *` | banking agent | remove a customer | I can remove a customer that is no longer going to use our credit card services or is blacklisted | -| `* * *` | banking agent | view details of a customer | I need not ask customers for details again | -| `* * *` | banking agent | save contact details of the customers | I can contact customers who are more willing to spend money and call back customers with updates | -| `* * *` | banking agent | edit contact details of the customers | I need not delete and re-add a customer just for a small change in detail (i.e. moved house) | -| `* * *` | banking agent | delete contact details | I can remove customers who are no longer valid or for whatever reason are not worth saving | -| `* * *` | banking agent | save a note/remarks about the customers | I can recall any particular notable details about the customer (for e.g. This customer is very concerned about pricing) | -| `* *` | banking agent | check which credit card services or plans a customer has/had | I avoid selling products that the customer already has | -| `* *` | banking agent | filter using details like occupation and income | I can target a group of customers more quickly | +| `* * *` | user | be able to edit data of my client | I can change client details without having to delete a contact and re-add it with the new details | +| `* * *` | banking agent | add a client | I can save the records and details of the new client | +| `* * *` | banking agent | remove a client | I can remove a client that is no longer going to use our credit card services or is blacklisted | +| `* * *` | banking agent | view details of a client | I need not ask clients for details again | +| `* * *` | banking agent | save contact details of the clients | I can contact clients who are more willing to spend money and call back clients with updates | +| `* * *` | banking agent | edit contact details of the clients | I need not delete and re-add a client just for a small change in detail (i.e. moved house) | +| `* * *` | banking agent | delete contact details | I can remove clients who are no longer valid or for whatever reason are not worth saving | +| `* * *` | banking agent | save a note/remarks about the clients | I can recall any particular notable details about the client (for e.g. This client is very concerned about pricing) | +| `* *` | banking agent | check which credit card services or plans a client has/had | I avoid selling products that the client already has | +| `* *` | banking agent | filter using details like occupation and income | I can target a group of clients more quickly | | `* *` | first time user | have a walkthrough guide to show me the user interface | I am familiar with the features available and how I can find and use them | | `*` | user | export current data | I can backup the data regularly | | `*` | user | import data from a backup | I can use my data backed up in case of data loss, or initialise the app with a set of data if I am transferring from a prior source | -| `*` | banking agent | view common urls/card information | I can read/send them to the customer quickly when inquired | +| `*` | banking agent | view common urls/card information | I can read/send them to the client quickly when inquired | | `*` | banking agent | be reminded to call back a client when I open the application | I can immediately know which client I need to follow up today | | `*` | impatient user | get the results that falls into a specific group/category | I don’t waste time querying all the result in that category one by one | | `*` | impatient user | enter details quickly using a user-friendly interface | I can quickly add/view data and not get mad because it’s fast | | `*` | long time user | access my most frequently used features easily | I can save time when accessing my most used features | | `*` | beginner user | have a help menu | I know how to perform a particular task | -| `*` | beginner user | have some sample customer data that has already been inputted into the app | I can find out information can be saved in the application | +| `*` | beginner user | have some sample client data that has already been inputted into the app | I can find out information can be saved in the application | *{More to be added}* @@ -302,16 +302,16 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli (For all use cases below, the **System** is the `AgentAssist` and the **Actor** is the `user`, unless specified otherwise) -**Use case: U1 - Delete a person** +**Use case: U1 - Delete a client** **MSS** -1. User requests to list persons. -2. AgentAssist shows a list of persons. -3. User requests to delete a specific person in the list. +1. User requests to list clients. +2. AgentAssist shows a list of clients. +3. User requests to delete a specific client in the list. 4. AgentAssist asks user for confirmation. 5. User confirms. -6. AgentAssist deletes the person. +6. AgentAssist deletes the client. Use case ends. @@ -327,12 +327,12 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 2. -**Use case: U2 - Add a Person** +**Use case: U2 - Add a Client** **MSS** 1. User requests to add a user. -2. AgentAssist adds a person. +2. AgentAssist adds a client. 3. AgentAssist returns the unique user ID assigned to the new user. Use case ends. @@ -344,11 +344,11 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 1. -**Use case: U3 - Filter for a person** +**Use case: U3 - Filter for a client** **MSS** -1. User requests to view a person using an attribute like name to filter for the person. +1. User requests to view a client using an attribute like name to filter for the client. 2. AgentAssist returns a list of users which match the filter set in step 1. Use case ends. @@ -362,14 +362,14 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 1b. No users in the existing data pass the filter * 1b1. AgentAssist shows a blank list. -**Use case: U4 - Add remarks about a person** +**Use case: U4 - Add remarks about a client** **MSS** -1. User performs Filter for a person (U3) . -2. AgentAssist returns a list of people, with the person in it. -3. User requests to add a remark about the person, using the index of the person in the list. -4. AgentAssist adds a remark for the person. +1. User performs Filter for a client (U3) . +2. AgentAssist returns a list of people, with the client in it. +3. User requests to add a remark about the client, using the index of the client in the list. +4. AgentAssist adds a remark for the client. Use case ends. @@ -388,17 +388,17 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli - **Description**: AgentAssist must be operational on any mainstream operating system (Windows, macOS, Linux) as long as Java 17 or newer is installed. #### Performance and Capacity -- **Description**: The system should efficiently handle up to 1000 customer records without noticeable sluggishness in typical usage scenarios. +- **Description**: The system should efficiently handle up to 1000 client records without noticeable sluggishness in typical usage scenarios. - **Performance Goal**: All commands should execute and return a response within two seconds to maintain a fluid user experience. #### User Efficiency - **Description**: Designed for users with above-average typing speed in regular English text; such users should find executing tasks via commands faster than using a mouse. #### System Architecture -- **Description**: AgentAssist is designed for single-user scenarios, ensuring personalized and secure data management without the complexities of multi-user capabilities. +- **Description**: AgentAssist is designed for single-user scenarios, ensuring clientalized and secure data management without the complexities of multi-user capabilities. #### Data Management -- **Description**: All customer data should be stored locally in a human-editable text file format, allowing for easy access and manual modifications if required. +- **Description**: All client data should be stored locally in a human-editable text file format, allowing for easy access and manual modifications if required. #### Documentation - **Description**: Provide comprehensive, easy-to-read User and Developer Guides detailing functionality, usage, and system requirements. @@ -416,9 +416,9 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * **Mainstream OS**: Common operating systems like Windows, Linux, Unix, and macOS supported by the application. * **CLI (Command Line Interface)**: A text-based interface where users interact with the app by typing commands instead of using a graphical interface (mouse-driven). -* **Banking Agent**: A user of the system responsible for selling credit cards to customers. -* **Contact**: A record in the AgentAssist system that contains personal and financial details of a customer. -* **Customer**: A person whose details are managed within the AgentAssist system. This could be a potential or existing client of the banking agent interested in or already using credit card services. +* **Banking Agent**: A user of the system responsible for selling credit cards to clients. +* **Contact**: A record in the AgentAssist system that contains cliental and financial details of a client. +* **Client**: An individual whose information is managed within the AgentAssist system. This person may be a prospective or existing customer of the banking agent, expressing interest in or currently using credit card services. -------------------------------------------------------------------------------------------------------------------- ## **Appendix: Instructions for manual testing** @@ -447,23 +447,23 @@ testers are expected to do more *exploratory* testing. 1. _{ more test cases …​ }_ -### Deleting a person +### Deleting a client -1. Deleting a person while all persons are being shown +1. Deleting a client while all clients are being shown - 1. Prerequisites: List all persons using the `list` command. Multiple persons in the list. + 1. Prerequisites: List all clients using the `list` command. Multiple clients in the list. 1. Test case: `delete 1`
    Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. 1. Test case: `delete 0`
    - Expected: No person is deleted. Error details shown in the status message. + Expected: No client is deleted. Error details shown in the status message. 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
    Expected: Similar to previous. -2. Deleting a person after having filtered based on a criteria - 1. Prerequisites: Use the `filter` command with a suitable flag. Multiple persons in the list. +2. Deleting a client after having filtered based on a criteria + 1. Prerequisites: Use the `filter` command with a suitable flag. Multiple clients in the list. 1. Functions similar to above example except that the indexes to be used are based on the new list shown. From c82429ec35773044892de4b5dd2ce12057e55718 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 21:03:48 +0800 Subject: [PATCH 26/36] Fix typo in DevOps.md --- docs/DevOps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DevOps.md b/docs/DevOps.md index d2fd91a6001..4724701da81 100644 --- a/docs/DevOps.md +++ b/docs/DevOps.md @@ -19,7 +19,7 @@ Given below are how to use Gradle for some important project tasks. * **`clean`**: Deletes the files created during the previous build tasks (e.g. files in the `build` folder).
    e.g. `./gradlew clean` -* **`shadowJar`**: Uses the ShadowJar plugin to creat a fat JAR file in the `build/lib` folder, *if the current file is outdated*.
    +* **`shadowJar`**: Uses the ShadowJar plugin to create a fat JAR file in the `build/lib` folder, *if the current file is outdated*.
    e.g. `./gradlew shadowJar`. * **`run`**: Builds and runs the application.
    From f5f6d464fb075cc0e392b10335e5f3bb8cd7a252 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 21:04:44 +0800 Subject: [PATCH 27/36] Refactor remnants of person to client in UG --- docs/UserGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index ab5bbe163dd..673cc040d4f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -576,7 +576,7 @@ For detailed explanations of each flag and acceptable arguments, refer to Sectio - **On Success:** - Message: ``` - x person(s) listed! + x client(s) listed! ``` where `x` is the number of matching results. - **On Error:** @@ -622,7 +622,7 @@ view index - **On Error:** - Invalid index error message: ``` - The person index provided is invalid + The client index provided is invalid ``` > 💡 **Pro Tip:** From df1c2aaac1efaee928a5d7ecef3aea7689cc2a9f Mon Sep 17 00:00:00 2001 From: Zheng Shun Ren <107254834+ZShunRen@users.noreply.github.com> Date: Sat, 2 Nov 2024 23:41:56 +0800 Subject: [PATCH 28/36] Update build.gradle Remove minimize(), as the method call causes the mac application to break. Remove commented out lines. --- build.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.gradle b/build.gradle index dc104ae1a45..1bde58e52e2 100644 --- a/build.gradle +++ b/build.gradle @@ -81,11 +81,9 @@ dependencies { shadowJar { archiveFileName = 'AgentAssist.jar' zip64 = true - minimize() exclude('**/META-INF/*.SF', '**/META-INF/*.DSA', '**/META-INF/*.RSA') exclude('**/*.md') // Markdown files exclude('**/*.txt') // Text files -// exclude('**/*.png', '**/*.jpg') // Images, if not required exclude('**/docs/**') exclude('**/src/test/**') } From f488cd2a0b8c8f9a957e91fdbc5aebcc4f49ed4c Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sat, 2 Nov 2024 23:43:02 +0800 Subject: [PATCH 29/36] Refactor Person to Client in main and test --- src/main/java/seedu/address/logic/Logic.java | 6 +- .../seedu/address/logic/LogicManager.java | 6 +- .../java/seedu/address/logic/Messages.java | 28 +-- .../address/logic/commands/AddCommand.java | 26 +-- .../address/logic/commands/CloseCommand.java | 4 +- .../logic/commands/CommandCommons.java | 4 +- .../address/logic/commands/CommandResult.java | 26 +-- .../address/logic/commands/DeleteCommand.java | 18 +- .../address/logic/commands/EditCommand.java | 132 ++++++------- .../address/logic/commands/FilterCommand.java | 12 +- .../address/logic/commands/HelpCommand.java | 4 +- .../address/logic/commands/ListCommand.java | 8 +- .../address/logic/commands/ViewCommand.java | 32 ++-- .../logic/parser/AddCommandParser.java | 20 +- .../logic/parser/EditCommandParser.java | 28 +-- .../logic/parser/FilterCommandParser.java | 30 +-- .../address/logic/parser/ParserUtil.java | 14 +- .../java/seedu/address/model/AgentAssist.java | 66 +++---- src/main/java/seedu/address/model/Model.java | 50 ++--- .../seedu/address/model/ModelManager.java | 80 ++++---- .../address/model/ReadOnlyAgentAssist.java | 8 +- .../model/{person => client}/Address.java | 4 +- .../Person.java => client/Client.java} | 34 ++-- .../model/{person => client}/Email.java | 4 +- .../model/{person => client}/Income.java | 4 +- .../address/model/{person => client}/Job.java | 4 +- .../model/{person => client}/Name.java | 4 +- .../model/{person => client}/Phone.java | 4 +- .../model/{person => client}/Remark.java | 4 +- .../model/client/UniqueClientList.java | 150 +++++++++++++++ .../exceptions/ClientNotFoundException.java | 6 + .../exceptions/DuplicateClientException.java | 11 ++ .../AddressContainsSubstringPredicate.java | 10 +- .../predicates/CombinedPredicate.java | 24 +-- .../ContainsSubstringPredicate.java | 10 +- .../EmailContainsSubstringPredicate.java | 10 +- .../predicates/IncomeComparisonPredicate.java | 20 +- .../JobContainsSubstringPredicate.java | 10 +- .../NameContainsSubstringPredicate.java | 10 +- .../PhoneContainsSubstringPredicate.java | 10 +- .../RemarkContainsSubstringPredicate.java | 10 +- .../TierStartsWithSubstringPredicate.java | 12 +- .../model/person/UniquePersonList.java | 150 --------------- .../exceptions/DuplicatePersonException.java | 11 -- .../exceptions/PersonNotFoundException.java | 6 - .../address/model/util/SampleDataUtil.java | 36 ++-- .../address/storage/JsonAdaptedPerson.java | 38 ++-- .../storage/JsonSerializableAgentAssist.java | 24 +-- .../ui/{PersonCard.java => ClientCard.java} | 48 ++--- ...sonCardField.java => ClientCardField.java} | 10 +- ...etailPanel.java => ClientDetailPanel.java} | 46 ++--- .../seedu/address/ui/ClientListPanel.java | 53 ++++++ .../java/seedu/address/ui/MainWindow.java | 40 ++-- .../seedu/address/ui/PersonListPanel.java | 53 ------ ...etailPanel.fxml => ClientDetailPanel.fxml} | 2 +- ...ersonListCard.fxml => ClientListCard.fxml} | 0 ...sonListPanel.fxml => ClientListPanel.fxml} | 2 +- src/main/resources/view/MainWindow.fxml | 6 +- src/main/resources/view/css/DarkTheme.css | 4 +- ... => invalidAndValidClientAgentAssist.json} | 6 +- ...ist.json => invalidClientAgentAssist.json} | 4 +- ...t.json => duplicateClientAgentAssist.json} | 2 +- ...ist.json => invalidClientAgentAssist.json} | 2 +- ...st.json => typicalClientsAgentAssist.json} | 6 +- .../address/commons/core/index/IndexTest.java | 14 +- .../seedu/address/logic/LogicManagerTest.java | 22 +-- .../commands/AddCommandIntegrationTest.java | 36 ++-- .../logic/commands/AddCommandTest.java | 90 ++++----- .../logic/commands/ClearCommandTest.java | 2 +- .../logic/commands/CommandResultTest.java | 12 +- .../logic/commands/CommandTestUtil.java | 34 ++-- .../logic/commands/DeleteCommandTest.java | 60 +++--- ...est.java => EditClientDescriptorTest.java} | 46 ++--- .../logic/commands/EditCommandTest.java | 156 ++++++++-------- .../logic/commands/FilterCommandTest.java | 18 +- .../logic/commands/HelpCommandTest.java | 4 +- .../logic/commands/ListCommandTest.java | 8 +- .../logic/commands/UndoCommandTest.java | 16 +- .../logic/commands/ViewCommandTest.java | 30 +-- .../logic/parser/AddCommandParserTest.java | 68 +++---- .../logic/parser/AgentAssistParserTest.java | 36 ++-- .../logic/parser/DeleteCommandParserTest.java | 4 +- .../logic/parser/EditCommandParserTest.java | 60 +++--- .../logic/parser/FilterCommandParserTest.java | 42 ++--- .../address/logic/parser/ParserUtilTest.java | 16 +- .../logic/parser/ViewCommandParserTest.java | 4 +- .../seedu/address/model/AgentAssistTest.java | 64 +++---- .../seedu/address/model/ModelManagerTest.java | 32 ++-- .../model/{person => client}/AddressTest.java | 2 +- .../ClientTest.java} | 54 +++--- .../model/{person => client}/EmailTest.java | 2 +- .../model/{person => client}/NameTest.java | 2 +- .../model/{person => client}/PhoneTest.java | 2 +- .../model/client/UniqueClientListTest.java | 175 ++++++++++++++++++ ...AddressContainsSubstringPredicateTest.java | 28 +-- .../EmailContainsSubstringPredicateTest.java | 18 +- .../IncomeComparisonPredicateTest.java | 22 +-- .../JobContainsSubstringPredicateTest.java | 28 +-- .../NameContainsSubstringPredicateTest.java | 28 +-- .../PhoneContainsSubstringPredicateTest.java | 16 +- .../RemarkContainsSubstringPredicateTest.java | 28 +-- .../TierStartsWithSubstringPredicateTest.java | 26 +-- .../model/person/UniquePersonListTest.java | 175 ------------------ ...onTest.java => JsonAdaptedClientTest.java} | 94 +++++----- .../storage/JsonAgentAssistStorageTest.java | 22 +-- .../JsonSerializableAgentAssistTest.java | 26 +-- .../address/storage/StorageManagerTest.java | 2 +- .../address/testutil/AgentAssistBuilder.java | 10 +- ...{PersonBuilder.java => ClientBuilder.java} | 86 ++++----- .../{PersonUtil.java => ClientUtil.java} | 38 ++-- .../testutil/EditClientDescriptorBuilder.java | 127 +++++++++++++ .../testutil/EditPersonDescriptorBuilder.java | 127 ------------- .../java/seedu/address/testutil/TestUtil.java | 16 +- ...ypicalPersons.java => TypicalClients.java} | 42 ++--- .../address/testutil/TypicalIndexes.java | 6 +- 115 files changed, 1791 insertions(+), 1791 deletions(-) rename src/main/java/seedu/address/model/{person => client}/Address.java (94%) rename src/main/java/seedu/address/model/{person/Person.java => client/Client.java} (76%) rename src/main/java/seedu/address/model/{person => client}/Email.java (97%) rename src/main/java/seedu/address/model/{person => client}/Income.java (93%) rename src/main/java/seedu/address/model/{person => client}/Job.java (93%) rename src/main/java/seedu/address/model/{person => client}/Name.java (94%) rename src/main/java/seedu/address/model/{person => client}/Phone.java (93%) rename src/main/java/seedu/address/model/{person => client}/Remark.java (94%) create mode 100644 src/main/java/seedu/address/model/client/UniqueClientList.java create mode 100644 src/main/java/seedu/address/model/client/exceptions/ClientNotFoundException.java create mode 100644 src/main/java/seedu/address/model/client/exceptions/DuplicateClientException.java rename src/main/java/seedu/address/model/{person => client}/predicates/AddressContainsSubstringPredicate.java (79%) rename src/main/java/seedu/address/model/{person => client}/predicates/CombinedPredicate.java (78%) rename src/main/java/seedu/address/model/{person => client}/predicates/ContainsSubstringPredicate.java (64%) rename src/main/java/seedu/address/model/{person => client}/predicates/EmailContainsSubstringPredicate.java (78%) rename src/main/java/seedu/address/model/{person => client}/predicates/IncomeComparisonPredicate.java (82%) rename src/main/java/seedu/address/model/{person => client}/predicates/JobContainsSubstringPredicate.java (78%) rename src/main/java/seedu/address/model/{person => client}/predicates/NameContainsSubstringPredicate.java (78%) rename src/main/java/seedu/address/model/{person => client}/predicates/PhoneContainsSubstringPredicate.java (78%) rename src/main/java/seedu/address/model/{person => client}/predicates/RemarkContainsSubstringPredicate.java (79%) rename src/main/java/seedu/address/model/{person => client}/predicates/TierStartsWithSubstringPredicate.java (79%) delete mode 100644 src/main/java/seedu/address/model/person/UniquePersonList.java delete mode 100644 src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java delete mode 100644 src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java rename src/main/java/seedu/address/ui/{PersonCard.java => ClientCard.java} (59%) rename src/main/java/seedu/address/ui/{PersonCardField.java => ClientCardField.java} (85%) rename src/main/java/seedu/address/ui/{PersonDetailPanel.java => ClientDetailPanel.java} (77%) create mode 100644 src/main/java/seedu/address/ui/ClientListPanel.java delete mode 100644 src/main/java/seedu/address/ui/PersonListPanel.java rename src/main/resources/view/{PersonDetailPanel.fxml => ClientDetailPanel.fxml} (97%) rename src/main/resources/view/{PersonListCard.fxml => ClientListCard.fxml} (100%) rename src/main/resources/view/{PersonListPanel.fxml => ClientListPanel.fxml} (77%) rename src/test/data/JsonAgentAssistStorageTest/{invalidAndValidPersonAgentAssist.json => invalidAndValidClientAgentAssist.json} (67%) rename src/test/data/JsonAgentAssistStorageTest/{invalidPersonAgentAssist.json => invalidClientAgentAssist.json} (55%) rename src/test/data/JsonSerializableAgentAssistTest/{duplicatePersonAgentAssist.json => duplicateClientAgentAssist.json} (96%) rename src/test/data/JsonSerializableAgentAssistTest/{invalidPersonAgentAssist.json => invalidClientAgentAssist.json} (87%) rename src/test/data/JsonSerializableAgentAssistTest/{typicalPersonsAgentAssist.json => typicalClientsAgentAssist.json} (90%) rename src/test/java/seedu/address/logic/commands/{EditPersonDescriptorTest.java => EditClientDescriptorTest.java} (63%) rename src/test/java/seedu/address/model/{person => client}/AddressTest.java (98%) rename src/test/java/seedu/address/model/{person/PersonTest.java => client/ClientTest.java} (66%) rename src/test/java/seedu/address/model/{person => client}/EmailTest.java (99%) rename src/test/java/seedu/address/model/{person => client}/NameTest.java (98%) rename src/test/java/seedu/address/model/{person => client}/PhoneTest.java (98%) create mode 100644 src/test/java/seedu/address/model/client/UniqueClientListTest.java rename src/test/java/seedu/address/model/{person => client}/predicates/AddressContainsSubstringPredicateTest.java (84%) rename src/test/java/seedu/address/model/{person => client}/predicates/EmailContainsSubstringPredicateTest.java (84%) rename src/test/java/seedu/address/model/{person => client}/predicates/IncomeComparisonPredicateTest.java (82%) rename src/test/java/seedu/address/model/{person => client}/predicates/JobContainsSubstringPredicateTest.java (83%) rename src/test/java/seedu/address/model/{person => client}/predicates/NameContainsSubstringPredicateTest.java (83%) rename src/test/java/seedu/address/model/{person => client}/predicates/PhoneContainsSubstringPredicateTest.java (87%) rename src/test/java/seedu/address/model/{person => client}/predicates/RemarkContainsSubstringPredicateTest.java (84%) rename src/test/java/seedu/address/model/{person => client}/predicates/TierStartsWithSubstringPredicateTest.java (84%) delete mode 100644 src/test/java/seedu/address/model/person/UniquePersonListTest.java rename src/test/java/seedu/address/storage/{JsonAdaptedPersonTest.java => JsonAdaptedClientTest.java} (72%) rename src/test/java/seedu/address/testutil/{PersonBuilder.java => ClientBuilder.java} (51%) rename src/test/java/seedu/address/testutil/{PersonUtil.java => ClientUtil.java} (62%) create mode 100644 src/test/java/seedu/address/testutil/EditClientDescriptorBuilder.java delete mode 100644 src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java rename src/test/java/seedu/address/testutil/{TypicalPersons.java => TypicalClients.java} (75%) diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index bc908dd8616..9eaced32d06 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -8,7 +8,7 @@ import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.ReadOnlyAgentAssist; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * API of the Logic component @@ -30,8 +30,8 @@ public interface Logic { */ ReadOnlyAgentAssist getAgentAssist(); - /** Returns an unmodifiable view of the filtered list of persons */ - ObservableList getFilteredPersonList(); + /** Returns an unmodifiable view of the filtered list of clients */ + ObservableList getFilteredClientList(); /** * Returns the user prefs' address book file path. diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index b974aea1c44..c196c74a3c1 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -17,7 +17,7 @@ import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; import seedu.address.model.ReadOnlyAgentAssist; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; import seedu.address.storage.Storage; /** @@ -101,8 +101,8 @@ public ReadOnlyAgentAssist getAgentAssist() { } @Override - public ObservableList getFilteredPersonList() { - return model.getFilteredPersonList(); + public ObservableList getFilteredClientList() { + return model.getFilteredClientList(); } @Override diff --git a/src/main/java/seedu/address/logic/Messages.java b/src/main/java/seedu/address/logic/Messages.java index 5fd0cc91428..e564c5fd074 100644 --- a/src/main/java/seedu/address/logic/Messages.java +++ b/src/main/java/seedu/address/logic/Messages.java @@ -6,7 +6,7 @@ import java.util.stream.Stream; import seedu.address.logic.parser.Prefix; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * Container for user visible messages. @@ -15,8 +15,8 @@ public class Messages { public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; - public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; - public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; + public static final String MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX = "The client index provided is invalid"; + public static final String MESSAGE_CLIENTS_LISTED_OVERVIEW = "%1$d clients listed!"; public static final String MESSAGE_DUPLICATE_FIELDS = "Multiple values specified for the following single-valued field(s): "; @@ -38,27 +38,27 @@ public static String getErrorMessageForDuplicatePrefixes(Prefix... duplicatePref } /** - * Formats the {@code person} for display to the user. + * Formats the {@code client} for display to the user. */ - public static String format(Person person) { + public static String format(Client client) { final StringBuilder builder = new StringBuilder(); - builder.append(person.getName()) + builder.append(client.getName()) .append("; Phone: ") - .append(person.getPhone()) + .append(client.getPhone()) .append("; Email: ") - .append(person.getEmail()) + .append(client.getEmail()) .append("; Address: ") - .append(person.getAddress()) + .append(client.getAddress()) .append("; Job: ") - .append(person.getJob()) + .append(client.getJob()) .append("; Income: ") - .append(person.getIncome()) + .append(client.getIncome()) .append("; Tier: ") - .append(person.getTier()) + .append(client.getTier()) .append("; Remark: ") - .append(person.getRemark()) + .append(client.getRemark()) .append("; Status: ") - .append(person.getStatus()); + .append(client.getStatus()); return builder.toString(); } diff --git a/src/main/java/seedu/address/logic/commands/AddCommand.java b/src/main/java/seedu/address/logic/commands/AddCommand.java index 6c4a4ffe14d..ea1649c9361 100644 --- a/src/main/java/seedu/address/logic/commands/AddCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddCommand.java @@ -15,16 +15,16 @@ import seedu.address.logic.Messages; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Adds a person to the address book. + * Adds a client to the address book. */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a person to the address book. " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a client to the address book. " + "Parameters: " + PREFIX_NAME + "NAME " + PREFIX_PHONE + "PHONE " @@ -46,27 +46,27 @@ public class AddCommand extends Command { + PREFIX_NEW_REMARK + "He is very smart " + PREFIX_STATUS + "NON_URGENT"; - public static final String MESSAGE_SUCCESS = "New person added: %1$s"; - public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book"; + public static final String MESSAGE_SUCCESS = "New client added: %1$s"; + public static final String MESSAGE_DUPLICATE_CLIENT = "This client already exists in the address book"; - private final Person toAdd; + private final Client toAdd; /** - * Creates an AddCommand to add the specified {@code Person} + * Creates an AddCommand to add the specified {@code Client} */ - public AddCommand(Person person) { - requireNonNull(person); - toAdd = person; + public AddCommand(Client client) { + requireNonNull(client); + toAdd = client; } @Override protected CommandResult execute(Model model) throws CommandException { requireNonNull(model); - if (model.hasPerson(toAdd)) { - throw new CommandException(MESSAGE_DUPLICATE_PERSON); + if (model.hasClient(toAdd)) { + throw new CommandException(MESSAGE_DUPLICATE_CLIENT); } - model.addPerson(toAdd); + model.addClient(toAdd); return new CommandResult(String.format(MESSAGE_SUCCESS, Messages.format(toAdd))); } diff --git a/src/main/java/seedu/address/logic/commands/CloseCommand.java b/src/main/java/seedu/address/logic/commands/CloseCommand.java index 1871f5b3f0d..ea93488c282 100644 --- a/src/main/java/seedu/address/logic/commands/CloseCommand.java +++ b/src/main/java/seedu/address/logic/commands/CloseCommand.java @@ -1,6 +1,6 @@ package seedu.address.logic.commands; -import static seedu.address.logic.commands.CommandCommons.EMPTY_PERSON; +import static seedu.address.logic.commands.CommandCommons.EMPTY_CLIENT; import seedu.address.model.Model; @@ -20,7 +20,7 @@ public CommandResult execute(Model model) { false, false, false, - EMPTY_PERSON, + EMPTY_CLIENT, false ); } diff --git a/src/main/java/seedu/address/logic/commands/CommandCommons.java b/src/main/java/seedu/address/logic/commands/CommandCommons.java index ad3eab11bb5..30eae9213fe 100644 --- a/src/main/java/seedu/address/logic/commands/CommandCommons.java +++ b/src/main/java/seedu/address/logic/commands/CommandCommons.java @@ -1,6 +1,6 @@ package seedu.address.logic.commands; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * Contains common values used in different command classes, including default command values. @@ -9,6 +9,6 @@ public final class CommandCommons { public static final String DEFAULT_TIER = ""; public static final String DEFAULT_REMARK = "NA"; public static final String DEFAULT_STATUS = "NONE"; - public static final Person EMPTY_PERSON = null; + public static final Client EMPTY_CLIENT = null; } diff --git a/src/main/java/seedu/address/logic/commands/CommandResult.java b/src/main/java/seedu/address/logic/commands/CommandResult.java index 6f0aaa88cff..9eed490be4b 100644 --- a/src/main/java/seedu/address/logic/commands/CommandResult.java +++ b/src/main/java/seedu/address/logic/commands/CommandResult.java @@ -5,7 +5,7 @@ import java.util.Objects; import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * Represents the result of a command execution. @@ -23,19 +23,19 @@ public class CommandResult { /** The application should show a confirmation button */ private final boolean showConfirmation; - private final boolean showPerson; - private final Person viewedPerson; + private final boolean showClient; + private final Client viewedClient; /** * Constructs a {@code CommandResult} with the specified fields. */ public CommandResult(String feedbackToUser, boolean showHelp, boolean exit, - boolean showPerson, Person viewedPerson, boolean showConfirmation) { + boolean showClient, Client viewedClient, boolean showConfirmation) { this.feedbackToUser = requireNonNull(feedbackToUser); this.showHelp = showHelp; this.exit = exit; - this.showPerson = showPerson; - this.viewedPerson = viewedPerson; + this.showClient = showClient; + this.viewedClient = viewedClient; this.showConfirmation = showConfirmation; } @@ -59,12 +59,12 @@ public boolean isExit() { return exit; } - public boolean isShowPerson() { - return showPerson; + public boolean isShowClient() { + return showClient; } - public Person getViewedPerson() { - return viewedPerson; + public Client getViewedClient() { + return viewedClient; } public boolean isShowConfirmation() { @@ -86,13 +86,13 @@ public boolean equals(Object other) { && showHelp == otherCommandResult.showHelp && exit == otherCommandResult.exit && showConfirmation == otherCommandResult.showConfirmation - && showPerson == otherCommandResult.showPerson - && Objects.equals(viewedPerson, otherCommandResult.viewedPerson); + && showClient == otherCommandResult.showClient + && Objects.equals(viewedClient, otherCommandResult.viewedClient); } @Override public int hashCode() { - return Objects.hash(feedbackToUser, showHelp, exit, showConfirmation, showPerson, viewedPerson); + return Objects.hash(feedbackToUser, showHelp, exit, showConfirmation, showClient, viewedClient); } @Override diff --git a/src/main/java/seedu/address/logic/commands/DeleteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteCommand.java index 5014d97af5d..fae028eaae8 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteCommand.java @@ -9,21 +9,21 @@ import seedu.address.logic.Messages; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Deletes a person identified using it's displayed index from the address book. + * Deletes a client identified using it's displayed index from the address book. */ public class DeleteCommand extends Command { public static final String COMMAND_WORD = "delete"; public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Deletes the person identified by the index number used in the displayed person list.\n" + + ": Deletes the client identified by the index number used in the displayed client list.\n" + "Parameters: INDEX (must be a positive integer)\n" + "Example: " + COMMAND_WORD + " 1"; - public static final String MESSAGE_DELETE_PERSON_SUCCESS = "Deleted Person: %1$s"; + public static final String MESSAGE_DELETE_CLIENT_SUCCESS = "Deleted Client: %1$s"; public static final String MESSAGE_DELETE_CONFIRMATION = "This will permanently delete this contact. " + "Are you sure you want to execute this command? (y/n)"; @@ -39,15 +39,15 @@ public DeleteCommand(Index targetIndex) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); + List lastShownList = model.getFilteredClientList(); if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + throw new CommandException(Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX); } - Person personToDelete = lastShownList.get(targetIndex.getZeroBased()); - model.deletePerson(personToDelete); - return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, Messages.format(personToDelete))); + Client clientToDelete = lastShownList.get(targetIndex.getZeroBased()); + model.deleteClient(clientToDelete); + return new CommandResult(String.format(MESSAGE_DELETE_CLIENT_SUCCESS, Messages.format(clientToDelete))); } @Override diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 1940938a828..4cd003a5ddb 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -11,7 +11,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; import static seedu.address.logic.parser.CliSyntax.PREFIX_STATUS; import static seedu.address.logic.parser.CliSyntax.PREFIX_TIER; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_CLIENTS; import java.util.List; import java.util.Objects; @@ -23,26 +23,26 @@ import seedu.address.logic.Messages; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Income; -import seedu.address.model.person.Job; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.person.Remark; +import seedu.address.model.client.Address; +import seedu.address.model.client.Client; +import seedu.address.model.client.Email; +import seedu.address.model.client.Income; +import seedu.address.model.client.Job; +import seedu.address.model.client.Name; +import seedu.address.model.client.Phone; +import seedu.address.model.client.Remark; import seedu.address.model.status.Status; import seedu.address.model.tier.Tier; /** - * Edits the details of an existing person in the address book. + * Edits the details of an existing client in the address book. */ public class EditCommand extends Command { public static final String COMMAND_WORD = "edit"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the person identified " - + "by the index number used in the displayed person list. " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the client identified " + + "by the index number used in the displayed client list. " + "Existing values will be overwritten by the input values. Any fields unspecified will not be modified.\n" + "Parameters: INDEX (must be a positive integer) " + "[" + PREFIX_NAME + "NAME] " @@ -59,69 +59,69 @@ public class EditCommand extends Command { + PREFIX_PHONE + "91234567 " + PREFIX_EMAIL + "johndoe@example.com"; - public static final String MESSAGE_EDIT_PERSON_SUCCESS = "Edited Person: %1$s"; + public static final String MESSAGE_EDIT_CLIENT_SUCCESS = "Edited Client: %1$s"; public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; - public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book."; + public static final String MESSAGE_DUPLICATE_CLIENT = "This client already exists in the address book."; private final Index index; - private final EditPersonDescriptor editPersonDescriptor; + private final EditClientDescriptor editClientDescriptor; /** - * @param index of the person in the filtered person list to edit - * @param editPersonDescriptor details to edit the person with + * @param index of the client in the filtered client list to edit + * @param editClientDescriptor details to edit the client with */ - public EditCommand(Index index, EditPersonDescriptor editPersonDescriptor) { + public EditCommand(Index index, EditClientDescriptor editClientDescriptor) { requireNonNull(index); - requireNonNull(editPersonDescriptor); + requireNonNull(editClientDescriptor); this.index = index; - this.editPersonDescriptor = new EditPersonDescriptor(editPersonDescriptor); + this.editClientDescriptor = new EditClientDescriptor(editClientDescriptor); } @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); + List lastShownList = model.getFilteredClientList(); if (index.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + throw new CommandException(Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX); } - Person personToEdit = lastShownList.get(index.getZeroBased()); - Person editedPerson = createEditedPerson(personToEdit, editPersonDescriptor); + Client clientToEdit = lastShownList.get(index.getZeroBased()); + Client editedClient = createEditedClient(clientToEdit, editClientDescriptor); - if (!personToEdit.isSamePerson(editedPerson) && model.hasPerson(editedPerson)) { - throw new CommandException(MESSAGE_DUPLICATE_PERSON); + if (!clientToEdit.isSameClient(editedClient) && model.hasClient(editedClient)) { + throw new CommandException(MESSAGE_DUPLICATE_CLIENT); } - model.setPerson(personToEdit, editedPerson); - model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); - return new CommandResult(String.format(MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson))); + model.setClient(clientToEdit, editedClient); + model.updateFilteredClientList(PREDICATE_SHOW_ALL_CLIENTS); + return new CommandResult(String.format(MESSAGE_EDIT_CLIENT_SUCCESS, Messages.format(editedClient))); } /** - * Creates and returns a {@code Person} with the details of {@code personToEdit} - * edited with {@code editPersonDescriptor}. + * Creates and returns a {@code Client} with the details of {@code clientToEdit} + * edited with {@code editClientDescriptor}. */ - private static Person createEditedPerson(Person personToEdit, EditPersonDescriptor editPersonDescriptor) { - assert personToEdit != null; - - Name updatedName = editPersonDescriptor.getName().orElse(personToEdit.getName()); - Phone updatedPhone = editPersonDescriptor.getPhone().orElse(personToEdit.getPhone()); - Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); - Address updatedAddress = editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); - Job updatedJob = editPersonDescriptor.getJob().orElse(personToEdit.getJob()); - Income updatedIncome = editPersonDescriptor.getIncome().orElse(personToEdit.getIncome()); - Tier updatedTier = editPersonDescriptor.getTier().orElse(personToEdit.getTier()); + private static Client createEditedClient(Client clientToEdit, EditClientDescriptor editClientDescriptor) { + assert clientToEdit!= null; + + Name updatedName = editClientDescriptor.getName().orElse(clientToEdit.getName()); + Phone updatedPhone = editClientDescriptor.getPhone().orElse(clientToEdit.getPhone()); + Email updatedEmail = editClientDescriptor.getEmail().orElse(clientToEdit.getEmail()); + Address updatedAddress = editClientDescriptor.getAddress().orElse(clientToEdit.getAddress()); + Job updatedJob = editClientDescriptor.getJob().orElse(clientToEdit.getJob()); + Income updatedIncome = editClientDescriptor.getIncome().orElse(clientToEdit.getIncome()); + Tier updatedTier = editClientDescriptor.getTier().orElse(clientToEdit.getTier()); Remark updatedRemark; - if (editPersonDescriptor.getAppendedRemark().isPresent()) { - updatedRemark = Remark.combineRemarks(personToEdit.getRemark(), - editPersonDescriptor.getAppendedRemark().get()); + if (editClientDescriptor.getAppendedRemark().isPresent()) { + updatedRemark = Remark.combineRemarks(clientToEdit.getRemark(), + editClientDescriptor.getAppendedRemark().get()); } else { - updatedRemark = editPersonDescriptor.getNewRemark().orElse(personToEdit.getRemark()); + updatedRemark = editClientDescriptor.getNewRemark().orElse(clientToEdit.getRemark()); } - Status updatedStatus = editPersonDescriptor.getStatus().orElse(personToEdit.getStatus()); - return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedJob, updatedIncome, + Status updatedStatus = editClientDescriptor.getStatus().orElse(clientToEdit.getStatus()); + return new Client(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedJob, updatedIncome, updatedTier, updatedRemark, updatedStatus); } @@ -138,22 +138,22 @@ public boolean equals(Object other) { EditCommand otherEditCommand = (EditCommand) other; return index.equals(otherEditCommand.index) - && editPersonDescriptor.equals(otherEditCommand.editPersonDescriptor); + && editClientDescriptor.equals(otherEditCommand.editClientDescriptor); } @Override public String toString() { return new ToStringBuilder(this) .add("index", index) - .add("editPersonDescriptor", editPersonDescriptor) + .add("editClientDescriptor", editClientDescriptor) .toString(); } /** - * Stores the details to edit the person with. Each non-empty field value will replace the - * corresponding field value of the person. + * Stores the details to edit the client with. Each non-empty field value will replace the + * corresponding field value of the client. */ - public static class EditPersonDescriptor { + public static class EditClientDescriptor { private Name name; private Phone phone; private Email email; @@ -164,13 +164,13 @@ public static class EditPersonDescriptor { private Remark remark; private Remark appendedRemark; private Status status; - public EditPersonDescriptor() {} + public EditClientDescriptor() {} /** * Copy constructor. * A defensive copy of {@code tags} is used internally. */ - public EditPersonDescriptor(EditPersonDescriptor toCopy) { + public EditClientDescriptor(EditClientDescriptor toCopy) { setName(toCopy.name); setPhone(toCopy.phone); setEmail(toCopy.email); @@ -285,21 +285,21 @@ public boolean equals(Object other) { } // instanceof handles nulls - if (!(other instanceof EditPersonDescriptor)) { + if (!(other instanceof EditClientDescriptor)) { return false; } - EditPersonDescriptor otherEditPersonDescriptor = (EditPersonDescriptor) other; - return Objects.equals(name, otherEditPersonDescriptor.name) - && Objects.equals(phone, otherEditPersonDescriptor.phone) - && Objects.equals(email, otherEditPersonDescriptor.email) - && Objects.equals(address, otherEditPersonDescriptor.address) - && Objects.equals(job, otherEditPersonDescriptor.job) - && Objects.equals(income, otherEditPersonDescriptor.income) - && Objects.equals(tier, otherEditPersonDescriptor.tier) - && Objects.equals(remark, otherEditPersonDescriptor.remark) - && Objects.equals(appendedRemark, otherEditPersonDescriptor.appendedRemark) - && Objects.equals(status, otherEditPersonDescriptor.status); + EditClientDescriptor otherEditClientDescriptor = (EditClientDescriptor) other; + return Objects.equals(name, otherEditClientDescriptor.name) + && Objects.equals(phone, otherEditClientDescriptor.phone) + && Objects.equals(email, otherEditClientDescriptor.email) + && Objects.equals(address, otherEditClientDescriptor.address) + && Objects.equals(job, otherEditClientDescriptor.job) + && Objects.equals(income, otherEditClientDescriptor.income) + && Objects.equals(tier, otherEditClientDescriptor.tier) + && Objects.equals(remark, otherEditClientDescriptor.remark) + && Objects.equals(appendedRemark, otherEditClientDescriptor.appendedRemark) + && Objects.equals(status, otherEditClientDescriptor.status); } @Override diff --git a/src/main/java/seedu/address/logic/commands/FilterCommand.java b/src/main/java/seedu/address/logic/commands/FilterCommand.java index 87c62d20b93..9baa50ae4da 100644 --- a/src/main/java/seedu/address/logic/commands/FilterCommand.java +++ b/src/main/java/seedu/address/logic/commands/FilterCommand.java @@ -7,10 +7,10 @@ import seedu.address.commons.util.ToStringBuilder; import seedu.address.logic.Messages; import seedu.address.model.Model; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Finds and lists all persons in address book whose name contains the substring. + * Finds and lists all clients in address book whose name contains the substring. * Substring matching is case-insensitive. */ public class FilterCommand extends Command { @@ -24,18 +24,18 @@ public class FilterCommand extends Command { + "Example: " + COMMAND_WORD + " n/ Alice" + " p/ 91112222\n" + "This will find all customers whose names contain 'Alice' and whose phone number is '91112222'."; - private final Predicate predicate; + private final Predicate predicate; - public FilterCommand(Predicate predicate) { + public FilterCommand(Predicate predicate) { this.predicate = predicate; } @Override protected CommandResult execute(Model model) { requireNonNull(model); - model.updateFilteredPersonList(predicate); + model.updateFilteredClientList(predicate); return new CommandResult( - String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, model.getFilteredPersonList().size())); + String.format(Messages.MESSAGE_CLIENTS_LISTED_OVERVIEW, model.getFilteredClientList().size())); } @Override diff --git a/src/main/java/seedu/address/logic/commands/HelpCommand.java b/src/main/java/seedu/address/logic/commands/HelpCommand.java index 2ae81820002..d9c406e422b 100644 --- a/src/main/java/seedu/address/logic/commands/HelpCommand.java +++ b/src/main/java/seedu/address/logic/commands/HelpCommand.java @@ -1,6 +1,6 @@ package seedu.address.logic.commands; -import static seedu.address.logic.commands.CommandCommons.EMPTY_PERSON; +import static seedu.address.logic.commands.CommandCommons.EMPTY_CLIENT; import seedu.address.model.Model; @@ -18,6 +18,6 @@ public class HelpCommand extends Command { @Override public CommandResult execute(Model model) { - return new CommandResult(SHOWING_HELP_MESSAGE, true, false, false, EMPTY_PERSON, false); + return new CommandResult(SHOWING_HELP_MESSAGE, true, false, false, EMPTY_CLIENT, false); } } diff --git a/src/main/java/seedu/address/logic/commands/ListCommand.java b/src/main/java/seedu/address/logic/commands/ListCommand.java index 1320c632340..f6b9b477913 100644 --- a/src/main/java/seedu/address/logic/commands/ListCommand.java +++ b/src/main/java/seedu/address/logic/commands/ListCommand.java @@ -1,24 +1,24 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_CLIENTS; import seedu.address.model.Model; /** - * Lists all persons in the address book to the user. + * Lists all clients in the address book to the user. */ public class ListCommand extends Command { public static final String COMMAND_WORD = "list"; - public static final String MESSAGE_SUCCESS = "Listed all persons"; + public static final String MESSAGE_SUCCESS = "Listed all clients"; @Override protected CommandResult execute(Model model) { requireNonNull(model); - model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + model.updateFilteredClientList(PREDICATE_SHOW_ALL_CLIENTS); return new CommandResult(MESSAGE_SUCCESS); } } diff --git a/src/main/java/seedu/address/logic/commands/ViewCommand.java b/src/main/java/seedu/address/logic/commands/ViewCommand.java index 41495ad2c52..832dd1bbb0b 100644 --- a/src/main/java/seedu/address/logic/commands/ViewCommand.java +++ b/src/main/java/seedu/address/logic/commands/ViewCommand.java @@ -1,36 +1,36 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.logic.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; +import static seedu.address.logic.Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX; import java.util.List; import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Represents a command to view the details of a person identified by their index in the displayed list. - * This command allows users to see detailed information about a specific person in the address book. + * Represents a command to view the details of a client identified by their index in the displayed list. + * This command allows users to see detailed information about a specific client in the address book. */ public class ViewCommand extends Command { public static final String COMMAND_WORD = "view"; public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Views the person identified by the index number used in the displayed person list.\n" + + ": Views the client identified by the index number used in the displayed client list.\n" + "Parameters: INDEX (must be a positive integer)\n" + "Example: " + COMMAND_WORD + " 1"; - public static final String MESSAGE_VIEW_PERSON_SUCCESS = "Viewed Person: %1$s"; + public static final String MESSAGE_VIEW_CLIENT_SUCCESS = "Viewed Client: %1$s"; private final Index targetIndex; /** - * Creates a new ViewCommand to view the person at the specified {@code targetIndex}. + * Creates a new ViewCommand to view the client at the specified {@code targetIndex}. * - * @param targetIndex The index of the person to view in the filtered person list + * @param targetIndex The index of the client to view in the filtered client list * @throws NullPointerException if {@code targetIndex} is null */ public ViewCommand(Index targetIndex) { @@ -39,10 +39,10 @@ public ViewCommand(Index targetIndex) { } /** - * Executes the view command to show the person at the specified index. + * Executes the view command to show the client at the specified index. * - * @param model The model containing the person data - * @return A CommandResult containing the viewed person's information + * @param model The model containing the client data + * @return A CommandResult containing the viewed client's information * @throws CommandException if the index is invalid or out of bounds * @throws NullPointerException if {@code model} is null */ @@ -50,15 +50,15 @@ public ViewCommand(Index targetIndex) { public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); + List lastShownList = model.getFilteredClientList(); if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + throw new CommandException(MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX); } - Person personToView = lastShownList.get(targetIndex.getZeroBased()); - return new CommandResult(String.format(MESSAGE_VIEW_PERSON_SUCCESS, personToView), - false, false, true, personToView, false); + Client clientToView = lastShownList.get(targetIndex.getZeroBased()); + return new CommandResult(String.format(MESSAGE_VIEW_CLIENT_SUCCESS, clientToView), + false, false, true, clientToView, false); } /** diff --git a/src/main/java/seedu/address/logic/parser/AddCommandParser.java b/src/main/java/seedu/address/logic/parser/AddCommandParser.java index aa6c74c8480..23047aa1c91 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddCommandParser.java @@ -16,14 +16,14 @@ import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.CommandCommons; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Income; -import seedu.address.model.person.Job; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.person.Remark; +import seedu.address.model.client.Address; +import seedu.address.model.client.Client; +import seedu.address.model.client.Email; +import seedu.address.model.client.Income; +import seedu.address.model.client.Job; +import seedu.address.model.client.Name; +import seedu.address.model.client.Phone; +import seedu.address.model.client.Remark; import seedu.address.model.status.Status; import seedu.address.model.tier.Tier; @@ -62,8 +62,8 @@ public AddCommand parse(String args) throws ParseException { .orElse(CommandCommons.DEFAULT_REMARK)); Status status = ParserUtil.parseStatus(argMultimap.getValue(PREFIX_STATUS).orElse(CommandCommons.DEFAULT_STATUS)); - Person person = new Person(name, phone, email, address, job, income, tier, remark, status); - return new AddCommand(person); + Client client = new Client(name, phone, email, address, job, income, tier, remark, status); + return new AddCommand(client); } /** diff --git a/src/main/java/seedu/address/logic/parser/EditCommandParser.java b/src/main/java/seedu/address/logic/parser/EditCommandParser.java index ce89e81767c..e234cb47977 100644 --- a/src/main/java/seedu/address/logic/parser/EditCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/EditCommandParser.java @@ -16,7 +16,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.Messages; import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; +import seedu.address.logic.commands.EditCommand.EditClientDescriptor; import seedu.address.logic.parser.exceptions.ParseException; /** @@ -52,46 +52,46 @@ public EditCommand parse(String args) throws ParseException { argMultimap.verifyNoDuplicatePrefixesFor(PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_INCOME, PREFIX_JOB, PREFIX_TIER, PREFIX_NEW_REMARK, PREFIX_APPEND_REMARK, PREFIX_STATUS); - EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); + EditClientDescriptor editClientDescriptor = new EditClientDescriptor(); if (argMultimap.getValue(PREFIX_NAME).isPresent()) { - editPersonDescriptor.setName(ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); + editClientDescriptor.setName(ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); } if (argMultimap.getValue(PREFIX_PHONE).isPresent()) { - editPersonDescriptor.setPhone(ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get())); + editClientDescriptor.setPhone(ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get())); } if (argMultimap.getValue(PREFIX_EMAIL).isPresent()) { - editPersonDescriptor.setEmail(ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get())); + editClientDescriptor.setEmail(ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get())); } if (argMultimap.getValue(PREFIX_ADDRESS).isPresent()) { - editPersonDescriptor.setAddress(ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get())); + editClientDescriptor.setAddress(ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get())); } if (argMultimap.getValue(PREFIX_JOB).isPresent()) { - editPersonDescriptor.setJob(ParserUtil.parseJob(argMultimap.getValue(PREFIX_JOB).get())); + editClientDescriptor.setJob(ParserUtil.parseJob(argMultimap.getValue(PREFIX_JOB).get())); } if (argMultimap.getValue(PREFIX_INCOME).isPresent()) { - editPersonDescriptor.setIncome(ParserUtil.parseIncome(argMultimap.getValue(PREFIX_INCOME).get())); + editClientDescriptor.setIncome(ParserUtil.parseIncome(argMultimap.getValue(PREFIX_INCOME).get())); } if (argMultimap.getValue(PREFIX_TIER).isPresent()) { - editPersonDescriptor.setTier(ParserUtil.parseTier(argMultimap.getValue(PREFIX_TIER).get())); + editClientDescriptor.setTier(ParserUtil.parseTier(argMultimap.getValue(PREFIX_TIER).get())); } if (argMultimap.getValue(PREFIX_NEW_REMARK).isPresent()) { - editPersonDescriptor.setNewRemark(ParserUtil.parseNewRemark(argMultimap.getValue(PREFIX_NEW_REMARK).get())); + editClientDescriptor.setNewRemark(ParserUtil.parseNewRemark(argMultimap.getValue(PREFIX_NEW_REMARK).get())); } if (argMultimap.getValue(PREFIX_APPEND_REMARK).isPresent()) { - editPersonDescriptor.setAppendedRemark(ParserUtil.parseNewRemark( + editClientDescriptor.setAppendedRemark(ParserUtil.parseNewRemark( argMultimap.getValue(PREFIX_APPEND_REMARK).get())); } if (argMultimap.getValue(PREFIX_STATUS).isPresent()) { - editPersonDescriptor.setStatus((ParserUtil.parseStatus( + editClientDescriptor.setStatus((ParserUtil.parseStatus( argMultimap.getValue(PREFIX_STATUS).get()))); } - if (!editPersonDescriptor.isAnyFieldEdited()) { + if (!editClientDescriptor.isAnyFieldEdited()) { throw new ParseException(EditCommand.MESSAGE_NOT_EDITED); } - return new EditCommand(index, editPersonDescriptor); + return new EditCommand(index, editClientDescriptor); } } diff --git a/src/main/java/seedu/address/logic/parser/FilterCommandParser.java b/src/main/java/seedu/address/logic/parser/FilterCommandParser.java index 1e2dbfcc1ba..3aebd7692ce 100644 --- a/src/main/java/seedu/address/logic/parser/FilterCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FilterCommandParser.java @@ -19,16 +19,16 @@ import seedu.address.logic.commands.FilterCommand; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Person; -import seedu.address.model.person.predicates.AddressContainsSubstringPredicate; -import seedu.address.model.person.predicates.CombinedPredicate; -import seedu.address.model.person.predicates.EmailContainsSubstringPredicate; -import seedu.address.model.person.predicates.IncomeComparisonPredicate; -import seedu.address.model.person.predicates.JobContainsSubstringPredicate; -import seedu.address.model.person.predicates.NameContainsSubstringPredicate; -import seedu.address.model.person.predicates.PhoneContainsSubstringPredicate; -import seedu.address.model.person.predicates.RemarkContainsSubstringPredicate; -import seedu.address.model.person.predicates.TierStartsWithSubstringPredicate; +import seedu.address.model.client.Client; +import seedu.address.model.client.predicates.AddressContainsSubstringPredicate; +import seedu.address.model.client.predicates.CombinedPredicate; +import seedu.address.model.client.predicates.EmailContainsSubstringPredicate; +import seedu.address.model.client.predicates.IncomeComparisonPredicate; +import seedu.address.model.client.predicates.JobContainsSubstringPredicate; +import seedu.address.model.client.predicates.NameContainsSubstringPredicate; +import seedu.address.model.client.predicates.PhoneContainsSubstringPredicate; +import seedu.address.model.client.predicates.RemarkContainsSubstringPredicate; +import seedu.address.model.client.predicates.TierStartsWithSubstringPredicate; import seedu.address.model.util.IncomeComparisonOperator; /** @@ -59,8 +59,8 @@ public FilterCommand parse(String args) throws ParseException { } // Handle flags and search terms - List> predicates = collectPredicates(argMultimap); - Predicate combinedPredicate = combinePredicates(predicates); + List> predicates = collectPredicates(argMultimap); + Predicate combinedPredicate = combinePredicates(predicates); return new FilterCommand(combinedPredicate); } @@ -85,12 +85,12 @@ private long countPrefixesUsed(ArgumentMultimap argMultimap, Prefix... prefixes) * @return A list of predicates corresponding to the filters provided. * @throws ParseException if there are any parsing issues. */ - private List> collectPredicates(ArgumentMultimap argMultimap) throws ParseException { + private List> collectPredicates(ArgumentMultimap argMultimap) throws ParseException { // Collect individual predicates to be combined with AND operator later. // This "collection then combine" approach enhances testability by avoiding the use of anonymous // lambda predicates which ensures that the combined predicate can be easily tested and debugged. - List> predicates = new ArrayList<>(); + List> predicates = new ArrayList<>(); if (argMultimap.getValue(PREFIX_NAME).isPresent()) { String substring = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()).fullName; @@ -140,7 +140,7 @@ private List> collectPredicates(ArgumentMultimap argMultimap) * @return A combined predicate that represents the logical AND of all provided predicates. * @throws IllegalArgumentException if the list of predicates is empty. */ - private Predicate combinePredicates(List> predicates) { + private Predicate combinePredicates(List> predicates) { Objects.requireNonNull(predicates, "Predicates list must not be null"); if (predicates.isEmpty()) { throw new IllegalArgumentException("Predicates list must not be empty"); diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index fe4eea9526b..1c863c8eba9 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -5,13 +5,13 @@ import seedu.address.commons.core.index.Index; import seedu.address.commons.util.StringUtil; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Income; -import seedu.address.model.person.Job; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; -import seedu.address.model.person.Remark; +import seedu.address.model.client.Address; +import seedu.address.model.client.Email; +import seedu.address.model.client.Income; +import seedu.address.model.client.Job; +import seedu.address.model.client.Name; +import seedu.address.model.client.Phone; +import seedu.address.model.client.Remark; import seedu.address.model.status.Status; import seedu.address.model.tier.Tier; import seedu.address.model.util.IncomeComparisonOperator; diff --git a/src/main/java/seedu/address/model/AgentAssist.java b/src/main/java/seedu/address/model/AgentAssist.java index 613fe71fe92..2765d63b974 100644 --- a/src/main/java/seedu/address/model/AgentAssist.java +++ b/src/main/java/seedu/address/model/AgentAssist.java @@ -6,16 +6,16 @@ import javafx.collections.ObservableList; import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; -import seedu.address.model.person.UniquePersonList; +import seedu.address.model.client.Client; +import seedu.address.model.client.UniqueClientList; /** * Wraps all data at the address-book level - * Duplicates are not allowed (by .isSamePerson comparison) + * Duplicates are not allowed (by .isSameClient comparison) */ public class AgentAssist implements ReadOnlyAgentAssist { - private final UniquePersonList persons; + private final UniqueClientList clients; /* * The 'unusual' code block below is a non-static initialization block, sometimes used to avoid duplication @@ -25,13 +25,13 @@ public class AgentAssist implements ReadOnlyAgentAssist { * among constructors. */ { - persons = new UniquePersonList(); + clients = new UniqueClientList(); } public AgentAssist() {} /** - * Creates an AgentAssist using the Persons in the {@code toBeCopied} + * Creates an AgentAssist using the Clients in the {@code toBeCopied} */ public AgentAssist(ReadOnlyAgentAssist toBeCopied) { this(); @@ -41,11 +41,11 @@ public AgentAssist(ReadOnlyAgentAssist toBeCopied) { //// list overwrite operations /** - * Replaces the contents of the person list with {@code persons}. - * {@code persons} must not contain duplicate persons. + * Replaces the contents of the client list with {@code clients}. + * {@code clients} must not contain duplicate clients. */ - public void setPersons(List persons) { - this.persons.setPersons(persons); + public void setClients(List clients) { + this.clients.setClients(clients); } /** @@ -54,44 +54,44 @@ public void setPersons(List persons) { public void resetData(ReadOnlyAgentAssist newData) { requireNonNull(newData); - setPersons(newData.getPersonList()); + setClients(newData.getClientList()); } - //// person-level operations + //// client-level operations /** - * Returns true if a person with the same identity as {@code person} exists in the address book. + * Returns true if a client with the same identity as {@code client} exists in the address book. */ - public boolean hasPerson(Person person) { - requireNonNull(person); - return persons.contains(person); + public boolean hasClient(Client client) { + requireNonNull(client); + return clients.contains(client); } /** - * Adds a person to the address book. - * The person must not already exist in the address book. + * Adds a client to the address book. + * The client must not already exist in the address book. */ - public void addPerson(Person p) { - persons.add(p); + public void addClient(Client p) { + clients.add(p); } /** - * Replaces the given person {@code target} in the list with {@code editedPerson}. + * Replaces the given client {@code target} in the list with {@code editedClient}. * {@code target} must exist in the address book. - * The person identity of {@code editedPerson} must not be the same as another existing person in the address book. + * The client identity of {@code editedClient} must not be the same as another existing client in the address book. */ - public void setPerson(Person target, Person editedPerson) { - requireNonNull(editedPerson); + public void setClient(Client target, Client editedClient) { + requireNonNull(editedClient); - persons.setPerson(target, editedPerson); + clients.setClient(target, editedClient); } /** * Removes {@code key} from this {@code AgentAssist}. * {@code key} must exist in the address book. */ - public void removePerson(Person key) { - persons.remove(key); + public void removeClient(Client key) { + clients.remove(key); } /** @@ -99,7 +99,7 @@ public void removePerson(Person key) { */ public AgentAssist getCopy() { AgentAssist newAgentAssist = new AgentAssist(); - newAgentAssist.setPersons(this.getPersonList()); + newAgentAssist.setClients(this.getClientList()); return newAgentAssist; } @@ -108,13 +108,13 @@ public AgentAssist getCopy() { @Override public String toString() { return new ToStringBuilder(this) - .add("persons", persons) + .add("clients", clients) .toString(); } @Override - public ObservableList getPersonList() { - return persons.asUnmodifiableObservableList(); + public ObservableList getClientList() { + return clients.asUnmodifiableObservableList(); } @Override @@ -129,11 +129,11 @@ public boolean equals(Object other) { } AgentAssist otherAgentAssist = (AgentAssist) other; - return persons.equals(otherAgentAssist.persons); + return clients.equals(otherAgentAssist.clients); } @Override public int hashCode() { - return persons.hashCode(); + return clients.hashCode(); } } diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index d04a355853d..5c09667e7e9 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -6,14 +6,14 @@ import javafx.beans.property.ReadOnlyProperty; import javafx.collections.ObservableList; import seedu.address.commons.core.GuiSettings; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * The API of the Model component. */ public interface Model { /** {@code Predicate} that always evaluate to true */ - Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; + Predicate PREDICATE_SHOW_ALL_CLIENTS = unused -> true; /** * Replaces user prefs data with the data in {@code userPrefs}. @@ -54,28 +54,28 @@ public interface Model { ReadOnlyAgentAssist getAgentAssist(); /** - * Returns true if a person with the same identity as {@code person} exists in the address book. + * Returns true if a client with the same identity as {@code client} exists in the address book. */ - boolean hasPerson(Person person); + boolean hasClient(Client client); /** - * Deletes the given person. - * The person must exist in the address book. + * Deletes the given client. + * The client must exist in the address book. */ - void deletePerson(Person target); + void deleteClient(Client target); /** - * Adds the given person. - * {@code person} must not already exist in the address book. + * Adds the given client. + * {@code client} must not already exist in the address book. */ - void addPerson(Person person); + void addClient(Client client); /** - * Replaces the given person {@code target} with {@code editedPerson}. + * Replaces the given client {@code target} with {@code editedClient}. * {@code target} must exist in the address book. - * The person identity of {@code editedPerson} must not be the same as another existing person in the address book. + * The client identity of {@code editedClient} must not be the same as another existing client in the address book. */ - void setPerson(Person target, Person editedPerson); + void setClient(Client target, Client editedClient); /** * Undos previous command by setting currentAddressBook to historyAddressBook. @@ -87,29 +87,29 @@ public interface Model { */ boolean hasPreviousCommand(); - /** Returns an unmodifiable view of the filtered person list */ - ObservableList getFilteredPersonList(); + /** Returns an unmodifiable view of the filtered client list */ + ObservableList getFilteredClientList(); /** - * Updates the filter of the filtered person list to filter by the given {@code predicates}. + * Updates the filter of the filtered client list to filter by the given {@code predicates}. * @throws NullPointerException if {@code predicates} is null. */ - void updateFilteredPersonList(Predicate predicate); + void updateFilteredClientList(Predicate predicate); /** - * Selected person in the filtered person list. - * null if no person is selected. + * Selected client in the filtered client list. + * null if no client is selected. */ - ReadOnlyProperty selectedPersonProperty(); + ReadOnlyProperty selectedClientProperty(); /** - * Returns the selected person in the filtered person list. - * null if no person is selected. + * Returns the selected client in the filtered client list. + * null if no client is selected. */ - Person getSelectedPerson(); + Client getSelectedClient(); /** - * Sets the selected person in the filtered person list. + * Sets the selected client in the filtered client list. */ - void setSelectedPerson(Person person); + void setSelectedClient(Client client); } diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 2f973c6d815..a4a3b664128 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -14,8 +14,8 @@ import javafx.collections.transformation.FilteredList; import seedu.address.commons.core.GuiSettings; import seedu.address.commons.core.LogsCenter; -import seedu.address.model.person.Person; -import seedu.address.model.person.exceptions.PersonNotFoundException; +import seedu.address.model.client.Client; +import seedu.address.model.client.exceptions.ClientNotFoundException; /** * Represents the in-memory model of the address book data. @@ -26,8 +26,8 @@ public class ModelManager implements Model { private AgentAssist historyAgentAssist = null; private AgentAssist currentAgentAssist; private final UserPrefs userPrefs; - private final FilteredList filteredPersons; - private final SimpleObjectProperty selectedPerson = new SimpleObjectProperty<>(); + private final FilteredList filteredClients; + private final SimpleObjectProperty selectedClient = new SimpleObjectProperty<>(); /** * Initializes a ModelManager with the given agentAssist and userPrefs. @@ -40,7 +40,7 @@ public ModelManager(ReadOnlyAgentAssist agentAssist, ReadOnlyUserPrefs userPrefs this.currentAgentAssist = new AgentAssist(agentAssist); this.userPrefs = new UserPrefs(userPrefs); - filteredPersons = new FilteredList<>(this.currentAgentAssist.getPersonList()); + filteredClients = new FilteredList<>(this.currentAgentAssist.getClientList()); } public ModelManager() { @@ -104,29 +104,29 @@ public ReadOnlyAgentAssist getAgentAssist() { } @Override - public boolean hasPerson(Person person) { - requireNonNull(person); - return currentAgentAssist.hasPerson(person); + public boolean hasClient(Client client) { + requireNonNull(client); + return currentAgentAssist.hasClient(client); } @Override - public void deletePerson(Person target) { + public void deleteClient(Client target) { saveHistory(); - currentAgentAssist.removePerson(target); + currentAgentAssist.removeClient(target); } @Override - public void addPerson(Person person) { + public void addClient(Client client) { saveHistory(); - currentAgentAssist.addPerson(person); - updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + currentAgentAssist.addClient(client); + updateFilteredClientList(PREDICATE_SHOW_ALL_CLIENTS); } @Override - public void setPerson(Person target, Person editedPerson) { - requireAllNonNull(target, editedPerson); + public void setClient(Client target, Client editedClient) { + requireAllNonNull(target, editedClient); saveHistory(); - currentAgentAssist.setPerson(target, editedPerson); + currentAgentAssist.setClient(target, editedClient); } @Override @@ -140,59 +140,59 @@ public boolean hasPreviousCommand() { return this.historyAgentAssist != null; } - //=========== Selected Person =========================================================================== + //=========== Selected Client =========================================================================== @Override - public ReadOnlyProperty selectedPersonProperty() { - return selectedPerson; + public ReadOnlyProperty selectedClientProperty() { + return selectedClient; } @Override - public Person getSelectedPerson() { - return selectedPerson.getValue(); + public Client getSelectedClient() { + return selectedClient.getValue(); } @Override - public void setSelectedPerson(Person person) { - requireNonNull(person); - if (!filteredPersons.contains(person)) { - throw new PersonNotFoundException(); + public void setSelectedClient(Client client) { + requireNonNull(client); + if (!filteredClients.contains(client)) { + throw new ClientNotFoundException(); } - selectedPerson.setValue(person); + selectedClient.setValue(client); } /** - * Ensures {@code selectedPerson} is a valid person in {@code filteredPersons}. + * Ensures {@code selectedClient} is a valid client in {@code filteredClients}. */ - private void ensureSelectedPersonIsValid(ListChangeListener.Change change) { + private void ensureSelectedClientIsValid(ListChangeListener.Change change) { while (change.next()) { - if (this.getSelectedPerson() == null) { + if (this.getSelectedClient() == null) { return; } - boolean wasSelectedPersonRemoved = change.getRemoved().stream() - .anyMatch(removedPerson -> selectedPerson.getValue().isSamePerson(removedPerson)); - if (wasSelectedPersonRemoved) { - this.setSelectedPerson(change.getFrom() > 0 ? filteredPersons.get(change.getFrom() - 1) : null); + boolean wasSelectedClientRemoved = change.getRemoved().stream() + .anyMatch(removedClient -> selectedClient.getValue().isSameClient(removedClient)); + if (wasSelectedClientRemoved) { + this.setSelectedClient(change.getFrom() > 0 ? filteredClients.get(change.getFrom() - 1) : null); } } } - //=========== Filtered Person List Accessors ============================================================= + //=========== Filtered Client List Accessors ============================================================= /** - * Returns an unmodifiable view of the list of {@code Person} backed by the internal list of + * Returns an unmodifiable view of the list of {@code Client} backed by the internal list of * {@code versionedAgentAssist} */ @Override - public ObservableList getFilteredPersonList() { - return filteredPersons; + public ObservableList getFilteredClientList() { + return filteredClients; } @Override - public void updateFilteredPersonList(Predicate predicate) { + public void updateFilteredClientList(Predicate predicate) { requireNonNull(predicate); - filteredPersons.setPredicate(predicate); + filteredClients.setPredicate(predicate); } @Override @@ -209,7 +209,7 @@ public boolean equals(Object other) { ModelManager otherModelManager = (ModelManager) other; return currentAgentAssist.equals(otherModelManager.currentAgentAssist) && userPrefs.equals(otherModelManager.userPrefs) - && filteredPersons.equals(otherModelManager.filteredPersons); + && filteredClients.equals(otherModelManager.filteredClients); } } diff --git a/src/main/java/seedu/address/model/ReadOnlyAgentAssist.java b/src/main/java/seedu/address/model/ReadOnlyAgentAssist.java index 2274925c72f..ab2ab3292dc 100644 --- a/src/main/java/seedu/address/model/ReadOnlyAgentAssist.java +++ b/src/main/java/seedu/address/model/ReadOnlyAgentAssist.java @@ -1,7 +1,7 @@ package seedu.address.model; import javafx.collections.ObservableList; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * Unmodifiable view of an address book @@ -9,9 +9,9 @@ public interface ReadOnlyAgentAssist { /** - * Returns an unmodifiable view of the persons list. - * This list will not contain any duplicate persons. + * Returns an unmodifiable view of the clients list. + * This list will not contain any duplicate clients. */ - ObservableList getPersonList(); + ObservableList getClientList(); } diff --git a/src/main/java/seedu/address/model/person/Address.java b/src/main/java/seedu/address/model/client/Address.java similarity index 94% rename from src/main/java/seedu/address/model/person/Address.java rename to src/main/java/seedu/address/model/client/Address.java index 469a2cc9a1e..3d15fd9884d 100644 --- a/src/main/java/seedu/address/model/person/Address.java +++ b/src/main/java/seedu/address/model/client/Address.java @@ -1,10 +1,10 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.AppUtil.checkArgument; /** - * Represents a Person's address in the address book. + * Represents a Client's address in the address book. * Guarantees: immutable; is valid as declared in {@link #isValidAddress(String)} */ public class Address { diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/client/Client.java similarity index 76% rename from src/main/java/seedu/address/model/person/Person.java rename to src/main/java/seedu/address/model/client/Client.java index 25bcfa05789..17b658806f3 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/client/Client.java @@ -1,4 +1,4 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; @@ -9,10 +9,10 @@ import seedu.address.model.tier.Tier; /** - * Represents a Person in the address book. + * Represents a Client in the address book. * Guarantees: details are present and not null, field values are validated, immutable. */ -public class Person { +public class Client { // Identity fields private final Name name; @@ -29,7 +29,7 @@ public class Person { /** * Every field must be present and not null. */ - public Person(Name name, Phone phone, Email email, Address address, Job job, Income income, + public Client(Name name, Phone phone, Email email, Address address, Job job, Income income, Tier tier, Remark remark, Status status) { requireAllNonNull(name, phone, email, address, tier, remark, status); this.name = name; @@ -81,23 +81,23 @@ public Remark getRemark() { } /** - * Returns true if both persons have the same name. - * This defines a weaker notion of equality between two persons. + * Returns true if both clients have the same name. + * This defines a weaker notion of equality between two clients. */ - public boolean isSamePerson(Person otherPerson) { - if (otherPerson == this) { + public boolean isSameClient(Client otherClient) { + if (otherClient== this) { return true; } - return otherPerson != null - && otherPerson.getName().equals(getName()) - && otherPerson.getPhone().equals(getPhone()) - && otherPerson.getEmail().equals(getEmail()); + return otherClient!= null + && otherClient.getName().equals(getName()) + && otherClient.getPhone().equals(getPhone()) + && otherClient.getEmail().equals(getEmail()); } /** - * Returns true if both persons have the same identity and data fields. - * This defines a stronger notion of equality between two persons. + * Returns true if both clients have the same identity and data fields. + * This defines a stronger notion of equality between two clients. */ @Override public boolean equals(Object other) { @@ -106,12 +106,12 @@ public boolean equals(Object other) { } // instanceof handles nulls - if (!(other instanceof Person)) { + if (!(other instanceof Client)) { return false; } - Person otherPerson = (Person) other; - return isSamePerson(otherPerson); + Client otherClient = (Client) other; + return isSameClient(otherClient); } @Override diff --git a/src/main/java/seedu/address/model/person/Email.java b/src/main/java/seedu/address/model/client/Email.java similarity index 97% rename from src/main/java/seedu/address/model/person/Email.java rename to src/main/java/seedu/address/model/client/Email.java index c62e512bc29..5d3f02d7324 100644 --- a/src/main/java/seedu/address/model/person/Email.java +++ b/src/main/java/seedu/address/model/client/Email.java @@ -1,10 +1,10 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.AppUtil.checkArgument; /** - * Represents a Person's email in the address book. + * Represents a Client's email in the address book. * Guarantees: immutable; is valid as declared in {@link #isValidEmail(String)} */ public class Email { diff --git a/src/main/java/seedu/address/model/person/Income.java b/src/main/java/seedu/address/model/client/Income.java similarity index 93% rename from src/main/java/seedu/address/model/person/Income.java rename to src/main/java/seedu/address/model/client/Income.java index e86b7a3d438..d49ac1eb5be 100644 --- a/src/main/java/seedu/address/model/person/Income.java +++ b/src/main/java/seedu/address/model/client/Income.java @@ -1,9 +1,9 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static java.util.Objects.requireNonNull; /** - * Represents a Person's income level in SGD per annum in the address book. + * Represents a Client's income level in SGD per annum in the address book. * Guarantees: immutable; is valid as declared in {@link #isValidIncome(String)} */ public class Income { diff --git a/src/main/java/seedu/address/model/person/Job.java b/src/main/java/seedu/address/model/client/Job.java similarity index 93% rename from src/main/java/seedu/address/model/person/Job.java rename to src/main/java/seedu/address/model/client/Job.java index 8fd92b1cbc2..5b544631788 100644 --- a/src/main/java/seedu/address/model/person/Job.java +++ b/src/main/java/seedu/address/model/client/Job.java @@ -1,4 +1,4 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.AppUtil.checkArgument; @@ -6,7 +6,7 @@ import java.util.Objects; /** - * Represents a Person's job in the address book. + * Represents a Client's job in the address book. * Guarantees: immutable; is valid as declared in {@link #isValidJob(String)} */ public class Job { diff --git a/src/main/java/seedu/address/model/person/Name.java b/src/main/java/seedu/address/model/client/Name.java similarity index 94% rename from src/main/java/seedu/address/model/person/Name.java rename to src/main/java/seedu/address/model/client/Name.java index 1ff8ab730cd..7228206df63 100644 --- a/src/main/java/seedu/address/model/person/Name.java +++ b/src/main/java/seedu/address/model/client/Name.java @@ -1,10 +1,10 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.AppUtil.checkArgument; /** - * Represents a Person's name in the address book. + * Represents a Client's name in the address book. * Guarantees: immutable; is valid as declared in {@link #isValidName(String)} */ public class Name { diff --git a/src/main/java/seedu/address/model/person/Phone.java b/src/main/java/seedu/address/model/client/Phone.java similarity index 93% rename from src/main/java/seedu/address/model/person/Phone.java rename to src/main/java/seedu/address/model/client/Phone.java index 0255b4155be..f89b707f190 100644 --- a/src/main/java/seedu/address/model/person/Phone.java +++ b/src/main/java/seedu/address/model/client/Phone.java @@ -1,10 +1,10 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.AppUtil.checkArgument; /** - * Represents a Person's phone number in the address book. + * Represents a Client's phone number in the address book. * Guarantees: immutable; is valid as declared in {@link #isValidPhone(String)} */ public class Phone { diff --git a/src/main/java/seedu/address/model/person/Remark.java b/src/main/java/seedu/address/model/client/Remark.java similarity index 94% rename from src/main/java/seedu/address/model/person/Remark.java rename to src/main/java/seedu/address/model/client/Remark.java index fb0f36aed30..1dc777a11bb 100644 --- a/src/main/java/seedu/address/model/person/Remark.java +++ b/src/main/java/seedu/address/model/client/Remark.java @@ -1,9 +1,9 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static java.util.Objects.requireNonNull; /** - * Represents a Person's remarks in the address book, as added by a user. + * Represents a Client's remarks in the address book, as added by a user. * Guarantees: immutable; */ diff --git a/src/main/java/seedu/address/model/client/UniqueClientList.java b/src/main/java/seedu/address/model/client/UniqueClientList.java new file mode 100644 index 00000000000..ab3639c32b4 --- /dev/null +++ b/src/main/java/seedu/address/model/client/UniqueClientList.java @@ -0,0 +1,150 @@ +package seedu.address.model.client; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import java.util.Iterator; +import java.util.List; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import seedu.address.model.client.exceptions.DuplicateClientException; +import seedu.address.model.client.exceptions.ClientNotFoundException; + +/** + * A list of clients that enforces uniqueness between its elements and does not allow nulls. + * A client is considered unique by comparing using {@code Client#isSameClient(Client)}. As such, adding and updating of + * clients uses Client#isSameClient(Client) for equality so as to ensure that the client being added or updated is + * unique in terms of identity in the UniqueClientList. However, the removal of a client uses Client#equals(Object) so + * as to ensure that the client with exactly the same fields will be removed. + * + * Supports a minimal set of list operations. + * + * @see Client#isSameClient(Client) + */ +public class UniqueClientList implements Iterable { + + private final ObservableList internalList = FXCollections.observableArrayList(); + private final ObservableList internalUnmodifiableList = + FXCollections.unmodifiableObservableList(internalList); + + /** + * Returns true if the list contains an equivalent client as the given argument. + */ + public boolean contains(Client toCheck) { + requireNonNull(toCheck); + return internalList.stream().anyMatch(toCheck::isSameClient); + } + + /** + * Adds a client to the list. + * The client must not already exist in the list. + */ + public void add(Client toAdd) { + requireNonNull(toAdd); + if (contains(toAdd)) { + throw new DuplicateClientException(); + } + internalList.add(toAdd); + } + + /** + * Replaces the client {@code target} in the list with {@code editedClient}. + * {@code target} must exist in the list. + * The client identity of {@code editedClient} must not be the same as another existing client in the list. + */ + public void setClient(Client target, Client editedClient) { + requireAllNonNull(target, editedClient); + + int index = internalList.indexOf(target); + if (index == -1) { + throw new ClientNotFoundException(); + } + + if (!target.isSameClient(editedClient) && contains(editedClient)) { + throw new DuplicateClientException(); + } + + internalList.set(index, editedClient); + } + + /** + * Removes the equivalent client from the list. + * The client must exist in the list. + */ + public void remove(Client toRemove) { + requireNonNull(toRemove); + if (!internalList.remove(toRemove)) { + throw new ClientNotFoundException(); + } + } + + public void setClients(UniqueClientList replacement) { + requireNonNull(replacement); + internalList.setAll(replacement.internalList); + } + + /** + * Replaces the contents of this list with {@code clients}. + * {@code clients} must not contain duplicate clients. + */ + public void setClients(List clients) { + requireAllNonNull(clients); + if (!clientsAreUnique(clients)) { + throw new DuplicateClientException(); + } + + internalList.setAll(clients); + } + + /** + * Returns the backing list as an unmodifiable {@code ObservableList}. + */ + public ObservableList asUnmodifiableObservableList() { + return internalUnmodifiableList; + } + + @Override + public Iterator iterator() { + return internalList.iterator(); + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + + // instanceof handles nulls + if (!(other instanceof UniqueClientList)) { + return false; + } + + UniqueClientList otherUniqueClientList = (UniqueClientList) other; + return internalList.equals(otherUniqueClientList.internalList); + } + + @Override + public int hashCode() { + return internalList.hashCode(); + } + + @Override + public String toString() { + return internalList.toString(); + } + + /** + * Returns true if {@code clients} contains only unique clients. + */ + private boolean clientsAreUnique(List clients) { + for (int i = 0; i < clients.size() - 1; i++) { + for (int j = i + 1; j < clients.size(); j++) { + if (clients.get(i).isSameClient(clients.get(j))) { + return false; + } + } + } + return true; + } +} diff --git a/src/main/java/seedu/address/model/client/exceptions/ClientNotFoundException.java b/src/main/java/seedu/address/model/client/exceptions/ClientNotFoundException.java new file mode 100644 index 00000000000..84f9ae2c085 --- /dev/null +++ b/src/main/java/seedu/address/model/client/exceptions/ClientNotFoundException.java @@ -0,0 +1,6 @@ +package seedu.address.model.client.exceptions; + +/** + * Signals that the operation is unable to find the specified client. + */ +public class ClientNotFoundException extends RuntimeException {} diff --git a/src/main/java/seedu/address/model/client/exceptions/DuplicateClientException.java b/src/main/java/seedu/address/model/client/exceptions/DuplicateClientException.java new file mode 100644 index 00000000000..ef4e36ea4aa --- /dev/null +++ b/src/main/java/seedu/address/model/client/exceptions/DuplicateClientException.java @@ -0,0 +1,11 @@ +package seedu.address.model.client.exceptions; + +/** + * Signals that the operation will result in duplicate Clients (Clients are considered duplicates if they have the same + * identity). + */ +public class DuplicateClientException extends RuntimeException { + public DuplicateClientException() { + super("Operation would result in duplicate clients"); + } +} diff --git a/src/main/java/seedu/address/model/person/predicates/AddressContainsSubstringPredicate.java b/src/main/java/seedu/address/model/client/predicates/AddressContainsSubstringPredicate.java similarity index 79% rename from src/main/java/seedu/address/model/person/predicates/AddressContainsSubstringPredicate.java rename to src/main/java/seedu/address/model/client/predicates/AddressContainsSubstringPredicate.java index c97d89e2f74..47483ee6f34 100644 --- a/src/main/java/seedu/address/model/person/predicates/AddressContainsSubstringPredicate.java +++ b/src/main/java/seedu/address/model/client/predicates/AddressContainsSubstringPredicate.java @@ -1,12 +1,12 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import seedu.address.commons.util.StringUtil; import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Tests that a {@code Person}'s {@code Address} contains a specified substring. + * Tests that a {@code Client}'s {@code Address} contains a specified substring. */ public class AddressContainsSubstringPredicate extends ContainsSubstringPredicate { public AddressContainsSubstringPredicate(String substring) { @@ -14,8 +14,8 @@ public AddressContainsSubstringPredicate(String substring) { } @Override - public boolean test(Person person) { - return StringUtil.containsSubstringIgnoreCase(person.getAddress().value, substring); + public boolean test(Client client) { + return StringUtil.containsSubstringIgnoreCase(client.getAddress().value, substring); } @Override diff --git a/src/main/java/seedu/address/model/person/predicates/CombinedPredicate.java b/src/main/java/seedu/address/model/client/predicates/CombinedPredicate.java similarity index 78% rename from src/main/java/seedu/address/model/person/predicates/CombinedPredicate.java rename to src/main/java/seedu/address/model/client/predicates/CombinedPredicate.java index c4c0bc84276..ba058546eb0 100644 --- a/src/main/java/seedu/address/model/person/predicates/CombinedPredicate.java +++ b/src/main/java/seedu/address/model/client/predicates/CombinedPredicate.java @@ -1,21 +1,21 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import java.util.List; import java.util.Objects; import java.util.function.Predicate; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * Represents a predicate that combines multiple other predicates using the AND operator. - * This class allows you to test multiple conditions on a {@link Person} object in a way that + * This class allows you to test multiple conditions on a {@link Client} object in a way that * ensures all provided predicates must evaluate to true for the overall predicate to return true. * *

    This is particularly useful for filtering when you need to apply multiple conditions * simultaneously, such as filtering by name, phone number, email, etc.

    */ -public class CombinedPredicate implements Predicate { - private final List> predicates; +public class CombinedPredicate implements Predicate { + private final List> predicates; /** * Constructs a {@code CombinedPredicate} with a list of predicates. @@ -24,21 +24,21 @@ public class CombinedPredicate implements Predicate { * * @param predicates the list of predicates to combine */ - public CombinedPredicate(List> predicates) { + public CombinedPredicate(List> predicates) { this.predicates = Objects.requireNonNull(predicates, "Predicates list must not be null"); } /** - * Tests the given {@code Person} object against all the combined predicates. - * This method returns {@code true} if all predicates return {@code true} for the given person. + * Tests the given {@code Client} object against all the combined predicates. + * This method returns {@code true} if all predicates return {@code true} for the given client. * - * @param person the {@code Person} to be tested + * @param client the {@code Client} to be tested * @return {@code true} if all predicates return {@code true}; {@code false} otherwise */ @Override - public boolean test(Person person) { - for (Predicate predicate : predicates) { - if (!predicate.test(person)) { + public boolean test(Client client) { + for (Predicate predicate : predicates) { + if (!predicate.test(client)) { return false; } } diff --git a/src/main/java/seedu/address/model/person/predicates/ContainsSubstringPredicate.java b/src/main/java/seedu/address/model/client/predicates/ContainsSubstringPredicate.java similarity index 64% rename from src/main/java/seedu/address/model/person/predicates/ContainsSubstringPredicate.java rename to src/main/java/seedu/address/model/client/predicates/ContainsSubstringPredicate.java index 96055af14f8..4aca50933e0 100644 --- a/src/main/java/seedu/address/model/person/predicates/ContainsSubstringPredicate.java +++ b/src/main/java/seedu/address/model/client/predicates/ContainsSubstringPredicate.java @@ -1,13 +1,13 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import java.util.function.Predicate; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Superclass for classes which test whether a {@code Person}'s attribute contains a specified substring. + * Superclass for classes which test whether a {@code Client}'s attribute contains a specified substring. */ -public abstract class ContainsSubstringPredicate implements Predicate { +public abstract class ContainsSubstringPredicate implements Predicate { protected final String substring; public ContainsSubstringPredicate(String substring) { @@ -15,7 +15,7 @@ public ContainsSubstringPredicate(String substring) { } @Override - public abstract boolean test(Person person); + public abstract boolean test(Client client); @Override public abstract boolean equals(Object other); diff --git a/src/main/java/seedu/address/model/person/predicates/EmailContainsSubstringPredicate.java b/src/main/java/seedu/address/model/client/predicates/EmailContainsSubstringPredicate.java similarity index 78% rename from src/main/java/seedu/address/model/person/predicates/EmailContainsSubstringPredicate.java rename to src/main/java/seedu/address/model/client/predicates/EmailContainsSubstringPredicate.java index 287b00c8a63..de91abaf310 100644 --- a/src/main/java/seedu/address/model/person/predicates/EmailContainsSubstringPredicate.java +++ b/src/main/java/seedu/address/model/client/predicates/EmailContainsSubstringPredicate.java @@ -1,11 +1,11 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import seedu.address.commons.util.StringUtil; import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Tests that a {@code Person}'s {@code Email} contains a specified substring. + * Tests that a {@code Client}'s {@code Email} contains a specified substring. */ public class EmailContainsSubstringPredicate extends ContainsSubstringPredicate { public EmailContainsSubstringPredicate(String substring) { @@ -13,8 +13,8 @@ public EmailContainsSubstringPredicate(String substring) { } @Override - public boolean test(Person person) { - return StringUtil.containsSubstringIgnoreCase(person.getEmail().value, substring); + public boolean test(Client client) { + return StringUtil.containsSubstringIgnoreCase(client.getEmail().value, substring); } @Override diff --git a/src/main/java/seedu/address/model/person/predicates/IncomeComparisonPredicate.java b/src/main/java/seedu/address/model/client/predicates/IncomeComparisonPredicate.java similarity index 82% rename from src/main/java/seedu/address/model/person/predicates/IncomeComparisonPredicate.java rename to src/main/java/seedu/address/model/client/predicates/IncomeComparisonPredicate.java index 37f2485d5be..4c5994aac27 100644 --- a/src/main/java/seedu/address/model/person/predicates/IncomeComparisonPredicate.java +++ b/src/main/java/seedu/address/model/client/predicates/IncomeComparisonPredicate.java @@ -1,24 +1,24 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import static java.util.Objects.requireNonNull; import java.util.function.Predicate; import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; import seedu.address.model.util.IncomeComparisonOperator; /** - * Predicate that compares a {@code Person}'s income against a threshold using a specified comparison operator. + * Predicate that compares a {@code Client}'s income against a threshold using a specified comparison operator. */ -public class IncomeComparisonPredicate implements Predicate { +public class IncomeComparisonPredicate implements Predicate { private final int incomeThreshold; private final IncomeComparisonOperator incomeComparisonOperator; /** * Constructs an {@code IncomeComparisonPredicate}. * - * @param incomeComparisonOperator The operator used to compare the person's income with the threshold. + * @param incomeComparisonOperator The operator used to compare the client's income with the threshold. * @param incomeThreshold The threshold income to compare against. */ public IncomeComparisonPredicate(IncomeComparisonOperator incomeComparisonOperator, int incomeThreshold) { @@ -29,16 +29,16 @@ public IncomeComparisonPredicate(IncomeComparisonOperator incomeComparisonOperat } @Override - public boolean test(Person person) { - int personIncome = person.getIncome().value; + public boolean test(Client client) { + int clientIncome = client.getIncome().value; switch (incomeComparisonOperator.comparisonOperator) { case "=": - return personIncome == incomeThreshold; + return clientIncome == incomeThreshold; case ">": - return personIncome > incomeThreshold; + return clientIncome > incomeThreshold; case "<": - return personIncome < incomeThreshold; + return clientIncome < incomeThreshold; default: return false; } diff --git a/src/main/java/seedu/address/model/person/predicates/JobContainsSubstringPredicate.java b/src/main/java/seedu/address/model/client/predicates/JobContainsSubstringPredicate.java similarity index 78% rename from src/main/java/seedu/address/model/person/predicates/JobContainsSubstringPredicate.java rename to src/main/java/seedu/address/model/client/predicates/JobContainsSubstringPredicate.java index aec4f2be158..d30e97b0b79 100644 --- a/src/main/java/seedu/address/model/person/predicates/JobContainsSubstringPredicate.java +++ b/src/main/java/seedu/address/model/client/predicates/JobContainsSubstringPredicate.java @@ -1,11 +1,11 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import seedu.address.commons.util.StringUtil; import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Tests that a {@code Person}'s {@code Job} contains a specified substring. + * Tests that a {@code Client}'s {@code Job} contains a specified substring. */ public class JobContainsSubstringPredicate extends ContainsSubstringPredicate { public JobContainsSubstringPredicate(String substring) { @@ -13,8 +13,8 @@ public JobContainsSubstringPredicate(String substring) { } @Override - public boolean test(Person person) { - return StringUtil.containsSubstringIgnoreCase(person.getJob().value, substring); + public boolean test(Client client) { + return StringUtil.containsSubstringIgnoreCase(client.getJob().value, substring); } @Override diff --git a/src/main/java/seedu/address/model/person/predicates/NameContainsSubstringPredicate.java b/src/main/java/seedu/address/model/client/predicates/NameContainsSubstringPredicate.java similarity index 78% rename from src/main/java/seedu/address/model/person/predicates/NameContainsSubstringPredicate.java rename to src/main/java/seedu/address/model/client/predicates/NameContainsSubstringPredicate.java index 4dd923ead9c..f25a3ec0929 100644 --- a/src/main/java/seedu/address/model/person/predicates/NameContainsSubstringPredicate.java +++ b/src/main/java/seedu/address/model/client/predicates/NameContainsSubstringPredicate.java @@ -1,11 +1,11 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import seedu.address.commons.util.StringUtil; import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Tests that a {@code Person}'s {@code Name} contains a specified substring. + * Tests that a {@code Client}'s {@code Name} contains a specified substring. */ public class NameContainsSubstringPredicate extends ContainsSubstringPredicate { public NameContainsSubstringPredicate(String substring) { @@ -13,8 +13,8 @@ public NameContainsSubstringPredicate(String substring) { } @Override - public boolean test(Person person) { - return StringUtil.containsSubstringIgnoreCase(person.getName().fullName, substring); + public boolean test(Client client) { + return StringUtil.containsSubstringIgnoreCase(client.getName().fullName, substring); } @Override diff --git a/src/main/java/seedu/address/model/person/predicates/PhoneContainsSubstringPredicate.java b/src/main/java/seedu/address/model/client/predicates/PhoneContainsSubstringPredicate.java similarity index 78% rename from src/main/java/seedu/address/model/person/predicates/PhoneContainsSubstringPredicate.java rename to src/main/java/seedu/address/model/client/predicates/PhoneContainsSubstringPredicate.java index 62e4e6c843f..e75ca65c7e2 100644 --- a/src/main/java/seedu/address/model/person/predicates/PhoneContainsSubstringPredicate.java +++ b/src/main/java/seedu/address/model/client/predicates/PhoneContainsSubstringPredicate.java @@ -1,11 +1,11 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import seedu.address.commons.util.StringUtil; import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Tests that a {@code Person}'s {@code Phone} contains a specified substring. + * Tests that a {@code Client}'s {@code Phone} contains a specified substring. */ public class PhoneContainsSubstringPredicate extends ContainsSubstringPredicate { @@ -14,8 +14,8 @@ public PhoneContainsSubstringPredicate(String substring) { } @Override - public boolean test(Person person) { - return StringUtil.containsSubstringIgnoreCase(person.getPhone().value, substring); + public boolean test(Client client) { + return StringUtil.containsSubstringIgnoreCase(client.getPhone().value, substring); } @Override diff --git a/src/main/java/seedu/address/model/person/predicates/RemarkContainsSubstringPredicate.java b/src/main/java/seedu/address/model/client/predicates/RemarkContainsSubstringPredicate.java similarity index 79% rename from src/main/java/seedu/address/model/person/predicates/RemarkContainsSubstringPredicate.java rename to src/main/java/seedu/address/model/client/predicates/RemarkContainsSubstringPredicate.java index 24dfc1c4ffa..f28013d4e0c 100644 --- a/src/main/java/seedu/address/model/person/predicates/RemarkContainsSubstringPredicate.java +++ b/src/main/java/seedu/address/model/client/predicates/RemarkContainsSubstringPredicate.java @@ -1,11 +1,11 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import seedu.address.commons.util.StringUtil; import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Tests that a {@code Person}'s {@code Remark} contains a specified substring. + * Tests that a {@code Client}'s {@code Remark} contains a specified substring. */ public class RemarkContainsSubstringPredicate extends ContainsSubstringPredicate { public RemarkContainsSubstringPredicate(String substring) { @@ -13,8 +13,8 @@ public RemarkContainsSubstringPredicate(String substring) { } @Override - public boolean test(Person person) { - return StringUtil.containsSubstringIgnoreCase(person.getRemark().value, substring); + public boolean test(Client client) { + return StringUtil.containsSubstringIgnoreCase(client.getRemark().value, substring); } @Override diff --git a/src/main/java/seedu/address/model/person/predicates/TierStartsWithSubstringPredicate.java b/src/main/java/seedu/address/model/client/predicates/TierStartsWithSubstringPredicate.java similarity index 79% rename from src/main/java/seedu/address/model/person/predicates/TierStartsWithSubstringPredicate.java rename to src/main/java/seedu/address/model/client/predicates/TierStartsWithSubstringPredicate.java index 8034f9e8056..523610f9d3a 100644 --- a/src/main/java/seedu/address/model/person/predicates/TierStartsWithSubstringPredicate.java +++ b/src/main/java/seedu/address/model/client/predicates/TierStartsWithSubstringPredicate.java @@ -1,15 +1,15 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import java.util.function.Predicate; import seedu.address.commons.util.StringUtil; import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * Tests that a {@code Person}'s assigned {@code Tier} starts with a specified String. + * Tests that a {@code Client}'s assigned {@code Tier} starts with a specified String. */ -public class TierStartsWithSubstringPredicate implements Predicate { +public class TierStartsWithSubstringPredicate implements Predicate { protected final String substring; public TierStartsWithSubstringPredicate(String substring) { @@ -17,8 +17,8 @@ public TierStartsWithSubstringPredicate(String substring) { } @Override - public boolean test(Person person) { - return StringUtil.startsWithSubstringIgnoreCase(person.getTier().toParsableString(), substring); + public boolean test(Client client) { + return StringUtil.startsWithSubstringIgnoreCase(client.getTier().toParsableString(), substring); } @Override diff --git a/src/main/java/seedu/address/model/person/UniquePersonList.java b/src/main/java/seedu/address/model/person/UniquePersonList.java deleted file mode 100644 index cc0a68d79f9..00000000000 --- a/src/main/java/seedu/address/model/person/UniquePersonList.java +++ /dev/null @@ -1,150 +0,0 @@ -package seedu.address.model.person; - -import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; - -import java.util.Iterator; -import java.util.List; - -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import seedu.address.model.person.exceptions.DuplicatePersonException; -import seedu.address.model.person.exceptions.PersonNotFoundException; - -/** - * A list of persons that enforces uniqueness between its elements and does not allow nulls. - * A person is considered unique by comparing using {@code Person#isSamePerson(Person)}. As such, adding and updating of - * persons uses Person#isSamePerson(Person) for equality so as to ensure that the person being added or updated is - * unique in terms of identity in the UniquePersonList. However, the removal of a person uses Person#equals(Object) so - * as to ensure that the person with exactly the same fields will be removed. - * - * Supports a minimal set of list operations. - * - * @see Person#isSamePerson(Person) - */ -public class UniquePersonList implements Iterable { - - private final ObservableList internalList = FXCollections.observableArrayList(); - private final ObservableList internalUnmodifiableList = - FXCollections.unmodifiableObservableList(internalList); - - /** - * Returns true if the list contains an equivalent person as the given argument. - */ - public boolean contains(Person toCheck) { - requireNonNull(toCheck); - return internalList.stream().anyMatch(toCheck::isSamePerson); - } - - /** - * Adds a person to the list. - * The person must not already exist in the list. - */ - public void add(Person toAdd) { - requireNonNull(toAdd); - if (contains(toAdd)) { - throw new DuplicatePersonException(); - } - internalList.add(toAdd); - } - - /** - * Replaces the person {@code target} in the list with {@code editedPerson}. - * {@code target} must exist in the list. - * The person identity of {@code editedPerson} must not be the same as another existing person in the list. - */ - public void setPerson(Person target, Person editedPerson) { - requireAllNonNull(target, editedPerson); - - int index = internalList.indexOf(target); - if (index == -1) { - throw new PersonNotFoundException(); - } - - if (!target.isSamePerson(editedPerson) && contains(editedPerson)) { - throw new DuplicatePersonException(); - } - - internalList.set(index, editedPerson); - } - - /** - * Removes the equivalent person from the list. - * The person must exist in the list. - */ - public void remove(Person toRemove) { - requireNonNull(toRemove); - if (!internalList.remove(toRemove)) { - throw new PersonNotFoundException(); - } - } - - public void setPersons(UniquePersonList replacement) { - requireNonNull(replacement); - internalList.setAll(replacement.internalList); - } - - /** - * Replaces the contents of this list with {@code persons}. - * {@code persons} must not contain duplicate persons. - */ - public void setPersons(List persons) { - requireAllNonNull(persons); - if (!personsAreUnique(persons)) { - throw new DuplicatePersonException(); - } - - internalList.setAll(persons); - } - - /** - * Returns the backing list as an unmodifiable {@code ObservableList}. - */ - public ObservableList asUnmodifiableObservableList() { - return internalUnmodifiableList; - } - - @Override - public Iterator iterator() { - return internalList.iterator(); - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof UniquePersonList)) { - return false; - } - - UniquePersonList otherUniquePersonList = (UniquePersonList) other; - return internalList.equals(otherUniquePersonList.internalList); - } - - @Override - public int hashCode() { - return internalList.hashCode(); - } - - @Override - public String toString() { - return internalList.toString(); - } - - /** - * Returns true if {@code persons} contains only unique persons. - */ - private boolean personsAreUnique(List persons) { - for (int i = 0; i < persons.size() - 1; i++) { - for (int j = i + 1; j < persons.size(); j++) { - if (persons.get(i).isSamePerson(persons.get(j))) { - return false; - } - } - } - return true; - } -} diff --git a/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java b/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java deleted file mode 100644 index d7290f59442..00000000000 --- a/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java +++ /dev/null @@ -1,11 +0,0 @@ -package seedu.address.model.person.exceptions; - -/** - * Signals that the operation will result in duplicate Persons (Persons are considered duplicates if they have the same - * identity). - */ -public class DuplicatePersonException extends RuntimeException { - public DuplicatePersonException() { - super("Operation would result in duplicate persons"); - } -} diff --git a/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java b/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java deleted file mode 100644 index fa764426ca7..00000000000 --- a/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java +++ /dev/null @@ -1,6 +0,0 @@ -package seedu.address.model.person.exceptions; - -/** - * Signals that the operation is unable to find the specified person. - */ -public class PersonNotFoundException extends RuntimeException {} diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index 88f9758cbc2..ad3f50604f4 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -2,14 +2,14 @@ import seedu.address.model.AgentAssist; import seedu.address.model.ReadOnlyAgentAssist; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Income; -import seedu.address.model.person.Job; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.person.Remark; +import seedu.address.model.client.Address; +import seedu.address.model.client.Client; +import seedu.address.model.client.Email; +import seedu.address.model.client.Income; +import seedu.address.model.client.Job; +import seedu.address.model.client.Name; +import seedu.address.model.client.Phone; +import seedu.address.model.client.Remark; import seedu.address.model.status.Status; import seedu.address.model.tier.Tier; @@ -17,25 +17,25 @@ * Contains utility methods for populating {@code AgentAssist} with sample data. */ public class SampleDataUtil { - public static Person[] getSamplePersons() { - return new Person[] { - new Person(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), + public static Client[] getSampleClients() { + return new Client[] { + new Client(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), new Address("Blk 30 Geylang Street 29, #06-40"), new Job("Software Engineer"), new Income(19), new Tier("GOLD"), new Remark("Has a lambo"), new Status("NON_URGENT")), - new Person(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), + new Client(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), new Job("Prime Minister"), new Income(20), new Tier("SILVER"), new Remark("Father is the prime minister"), new Status("URGENT")), - new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), + new Client(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), new Job("Designer"), new Income(1500), new Tier("BRONZE"), new Remark(""), new Status("NON_URGENT")), - new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), + new Client(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), new Job("Accountant"), new Income(1200), new Tier("BRONZE"), new Remark(""), new Status("")), - new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), + new Client(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), new Address("Blk 47 Tampines Street 20, #17-35"), new Job("Macs Burger Flipper"), new Income(20), new Tier("REJECT"), new Remark(""), new Status("URGENT")), - new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), + new Client(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), new Address("Blk 45 Aljunied Street 85, #11-31"), new Job("PowerPoint Master"), new Income(30), new Tier("REJECT"), new Remark(""), new Status("")) }; @@ -43,8 +43,8 @@ public static Person[] getSamplePersons() { public static ReadOnlyAgentAssist getSampleAgentAssist() { AgentAssist sampleAb = new AgentAssist(); - for (Person samplePerson : getSamplePersons()) { - sampleAb.addPerson(samplePerson); + for (Client sampleClient : getSampleClients()) { + sampleAb.addClient(sampleClient); } return sampleAb; } diff --git a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java index 552331035c9..e0383e3d19b 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java @@ -5,23 +5,23 @@ import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.logic.commands.CommandCommons; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Income; -import seedu.address.model.person.Job; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.person.Remark; +import seedu.address.model.client.Address; +import seedu.address.model.client.Client; +import seedu.address.model.client.Email; +import seedu.address.model.client.Income; +import seedu.address.model.client.Job; +import seedu.address.model.client.Name; +import seedu.address.model.client.Phone; +import seedu.address.model.client.Remark; import seedu.address.model.status.Status; import seedu.address.model.tier.Tier; /** - * Jackson-friendly version of {@link Person}. + * Jackson-friendly version of {@link Client}. */ -class JsonAdaptedPerson { +class JsonAdaptedClient { - public static final String MISSING_FIELD_MESSAGE_FORMAT = "Person's %s field is missing!"; + public static final String MISSING_FIELD_MESSAGE_FORMAT = "Client's %s field is missing!"; private final String name; private final String phone; @@ -34,10 +34,10 @@ class JsonAdaptedPerson { private final JsonAdaptedStatus assignedStatus; /** - * Constructs a {@code JsonAdaptedPerson} with the given person details. + * Constructs a {@code JsonAdaptedClient} with the given client details. */ @JsonCreator - public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone") String phone, + public JsonAdaptedClient(@JsonProperty("name") String name, @JsonProperty("phone") String phone, @JsonProperty("email") String email, @JsonProperty("address") String address, @JsonProperty("job") String job, @JsonProperty("income") String incomeString, @JsonProperty("assignedTier") JsonAdaptedTier assignedTier, @@ -56,9 +56,9 @@ public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone } /** - * Converts a given {@code Person} into this class for Jackson use. + * Converts a given {@code Client} into this class for Jackson use. */ - public JsonAdaptedPerson(Person source) { + public JsonAdaptedClient(Client source) { name = source.getName().fullName; phone = source.getPhone().value; email = source.getEmail().value; @@ -75,11 +75,11 @@ public JsonAdaptedPerson(Person source) { } /** - * Converts this Jackson-friendly adapted person object into the model's {@code Person} object. + * Converts this Jackson-friendly adapted client object into the model's {@code Client} object. * - * @throws IllegalValueException if there were any data constraints violated in the adapted person. + * @throws IllegalValueException if there were any data constraints violated in the adapted client. */ - public Person toModelType() throws IllegalValueException { + public Client toModelType() throws IllegalValueException { if (name == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName())); } @@ -139,7 +139,7 @@ public Person toModelType() throws IllegalValueException { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Status.class.getSimpleName())); } final Status modelStatus = assignedStatus.toModelType(); - return new Person(modelName, modelPhone, modelEmail, modelAddress, modelJob, + return new Client(modelName, modelPhone, modelEmail, modelAddress, modelJob, modelIncome, modelTier, modelRemark, modelStatus); } diff --git a/src/main/java/seedu/address/storage/JsonSerializableAgentAssist.java b/src/main/java/seedu/address/storage/JsonSerializableAgentAssist.java index a78cdc9f0a9..1b41ac32155 100644 --- a/src/main/java/seedu/address/storage/JsonSerializableAgentAssist.java +++ b/src/main/java/seedu/address/storage/JsonSerializableAgentAssist.java @@ -11,7 +11,7 @@ import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.model.AgentAssist; import seedu.address.model.ReadOnlyAgentAssist; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * An Immutable AgentAssist that is serializable to JSON format. @@ -19,16 +19,16 @@ @JsonRootName(value = "agentassist") class JsonSerializableAgentAssist { - public static final String MESSAGE_DUPLICATE_PERSON = "Persons list contains duplicate person(s)."; + public static final String MESSAGE_DUPLICATE_CLIENT = "Clients list contains duplicate client(s)."; - private final List persons = new ArrayList<>(); + private final List clients = new ArrayList<>(); /** - * Constructs a {@code JsonSerializableAgentAssist} with the given persons. + * Constructs a {@code JsonSerializableAgentAssist} with the given clients. */ @JsonCreator - public JsonSerializableAgentAssist(@JsonProperty("persons") List persons) { - this.persons.addAll(persons); + public JsonSerializableAgentAssist(@JsonProperty("clients") List clients) { + this.clients.addAll(clients); } /** @@ -37,7 +37,7 @@ public JsonSerializableAgentAssist(@JsonProperty("persons") List { +public class ClientCard extends UiPart { - private static final String FXML = "PersonListCard.fxml"; + private static final String FXML = "ClientListCard.fxml"; /** * Note: Certain keywords such as "location" and "resources" are reserved keywords in JavaFX. @@ -24,7 +24,7 @@ public class PersonCard extends UiPart { * @see The issue on AgentAssist level 4 */ - public final Person person; + public final Client client; @FXML private HBox cardPane; @@ -32,11 +32,11 @@ public class PersonCard extends UiPart { private Label name; @FXML private Label id; - private PersonCardField phone = new PersonCardField(); - private PersonCardField address = new PersonCardField(); - private PersonCardField job = new PersonCardField(); - private PersonCardField email = new PersonCardField(); - private PersonCardField income = new PersonCardField(); + private ClientCardField phone = new ClientCardField(); + private ClientCardField address = new ClientCardField(); + private ClientCardField job = new ClientCardField(); + private ClientCardField email = new ClientCardField(); + private ClientCardField income = new ClientCardField(); @FXML private Label remark; @FXML @@ -46,36 +46,36 @@ public class PersonCard extends UiPart { @FXML private VBox cardFields; /** - * Creates a {@code PersonCode} with the given {@code Person} and index to display. + * Creates a {@code ClientCode} with the given {@code Client} and index to display. */ - public PersonCard(Person person, int displayedIndex) { + public ClientCard(Client client, int displayedIndex) { super(FXML); - this.person = person; + this.client = client; id.setText(displayedIndex + ". "); createFields(); createStatus(); createTier(); } private void createFields() { - name.setText(person.getName().fullName); - phone.setFields(PersonCardField.ICON_LITERAL_PHONE, person.getPhone().value); - address.setFields(PersonCardField.ICON_LITERAL_ADDRESS, person.getAddress().value); - email.setFields(PersonCardField.ICON_LITERAL_EMAIL, person.getEmail().value); - job.setFields(PersonCardField.ICON_LITERAL_JOB, person.getJob().value); - income.setFields(PersonCardField.ICON_LITERAL_INCOME, person.getIncome().toString()); - remark.setText(person.getRemark().value); + name.setText(client.getName().fullName); + phone.setFields(ClientCardField.ICON_LITERAL_PHONE, client.getPhone().value); + address.setFields(ClientCardField.ICON_LITERAL_ADDRESS, client.getAddress().value); + email.setFields(ClientCardField.ICON_LITERAL_EMAIL, client.getEmail().value); + job.setFields(ClientCardField.ICON_LITERAL_JOB, client.getJob().value); + income.setFields(ClientCardField.ICON_LITERAL_INCOME, client.getIncome().toString()); + remark.setText(client.getRemark().value); cardFields.getChildren().addAll(phone, address, email, job, income); } private void createTier() { // Create a label for the tier - Label tierLabel = new Label(person.getTier().toParsableString().toUpperCase()); + Label tierLabel = new Label(client.getTier().toParsableString().toUpperCase()); // Apply the existing style classes tierLabel.getStyleClass().add("label"); // Add the tier-specific style class - String tier = person.getTier().toParsableString().toLowerCase(); + String tier = client.getTier().toParsableString().toLowerCase(); tierLabel.getStyleClass().add(tier + "-tier"); // Add the label to the FlowPane @@ -83,10 +83,10 @@ private void createTier() { } private void createStatus() { - Label statusLabel = new Label(person.getStatus().toParsableString()); + Label statusLabel = new Label(client.getStatus().toParsableString()); // Apply a different style class based on the status value - Status.StatusEnum status = person.getStatus().status; + Status.StatusEnum status = client.getStatus().status; switch (status) { case NONE -> statusLabel.getStyleClass().add("none-status"); case NON_URGENT -> statusLabel.getStyleClass().add("nonUrgent-status"); diff --git a/src/main/java/seedu/address/ui/PersonCardField.java b/src/main/java/seedu/address/ui/ClientCardField.java similarity index 85% rename from src/main/java/seedu/address/ui/PersonCardField.java rename to src/main/java/seedu/address/ui/ClientCardField.java index 5b0466d2760..071525c4434 100644 --- a/src/main/java/seedu/address/ui/PersonCardField.java +++ b/src/main/java/seedu/address/ui/ClientCardField.java @@ -9,9 +9,9 @@ import javafx.scene.paint.Paint; /** - * Represents a labelled field in the PersonCard + * Represents a labelled field in the ClientCard */ -public class PersonCardField extends HBox { +public class ClientCardField extends HBox { public static final String ICON_LITERAL_PHONE = "fas-phone-alt"; public static final String ICON_LITERAL_ADDRESS = "fas-building"; public static final String ICON_LITERAL_EMAIL = "fas-envelope"; @@ -22,9 +22,9 @@ public class PersonCardField extends HBox { private Label value; /** - * Creates a template {@code PersonCardField} to display. + * Creates a template {@code ClientCardField} to display. */ - public PersonCardField() { + public ClientCardField() { super(5); icon = new FontIcon(); icon.setIconColor(Paint.valueOf("darkgray")); @@ -41,7 +41,7 @@ public PersonCardField() { } /** - * Updates the {@code PersonCardField} {@code Icon} and {@code Value} with the corresponding strings. + * Updates the {@code ClientCardField} {@code Icon} and {@code Value} with the corresponding strings. * * @param iconLiteral The IconLiteral to be set for the icon. * @param valueText The String to be updated in value. diff --git a/src/main/java/seedu/address/ui/PersonDetailPanel.java b/src/main/java/seedu/address/ui/ClientDetailPanel.java similarity index 77% rename from src/main/java/seedu/address/ui/PersonDetailPanel.java rename to src/main/java/seedu/address/ui/ClientDetailPanel.java index bf145725a80..16f7e0126c1 100644 --- a/src/main/java/seedu/address/ui/PersonDetailPanel.java +++ b/src/main/java/seedu/address/ui/ClientDetailPanel.java @@ -7,16 +7,16 @@ import javafx.scene.layout.FlowPane; import javafx.scene.layout.Region; import seedu.address.commons.core.LogsCenter; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * A UI component that displays detailed information about a {@code Person}. + * A UI component that displays detailed information about a {@code Client}. * Shows all available fields including name, phone, address, email, job, income, tier, and remarks. - * Fields can be shown or hidden based on the presence of a person's data. + * Fields can be shown or hidden based on the presence of a client's data. */ -public class PersonDetailPanel extends UiPart { - private static final String FXML = "PersonDetailPanel.fxml"; - private final Logger logger = LogsCenter.getLogger(PersonDetailPanel.class); +public class ClientDetailPanel extends UiPart { + private static final String FXML = "ClientDetailPanel.fxml"; + private final Logger logger = LogsCenter.getLogger(ClientDetailPanel.class); @FXML private Label nameLabel; @@ -36,10 +36,10 @@ public class PersonDetailPanel extends UiPart { private Label remarkLabel; /** - * Creates a new PersonDetailPanel. + * Creates a new ClientDetailPanel. * This constructor initializes all labels and hides them by default. */ - public PersonDetailPanel() { + public ClientDetailPanel() { super(FXML); initializeLabels(); hideAllFields(); @@ -61,7 +61,7 @@ private void initializeLabels() { /** * Hides all fields in the detail panel by setting their managed and visible properties to false. - * This is used when no person is selected or when clearing the panel. + * This is used when no client is selected or when clearing the panel. */ private void hideAllFields() { setManagedAndVisible(nameLabel, false); @@ -88,22 +88,22 @@ private void setManagedAndVisible(javafx.scene.Node node, boolean value) { } /** - * Updates the detail panel to display information about the given person. - * If person is null, all fields will be hidden. + * Updates the detail panel to display information about the given client. + * If client is null, all fields will be hidden. * - * @param person The person whose details should be displayed, can be null + * @param client The client whose details should be displayed, can be null */ - public void setPersonDetails(Person person) { - if (person != null) { + public void setClientDetails(Client client) { + if (client!= null) { showAllFields(); - setLabelText(nameLabel, person.getName().fullName); - setLabelText(phoneLabel, person.getPhone().value); - setLabelText(addressLabel, person.getAddress().value); - setLabelText(emailLabel, person.getEmail().value); - setLabelText(jobLabel, person.getJob().value); - setLabelText(incomeLabel, String.valueOf(person.getIncome())); - setTier(person.getTier().toParsableString()); - setLabelText(remarkLabel, person.getRemark().value); + setLabelText(nameLabel, client.getName().fullName); + setLabelText(phoneLabel, client.getPhone().value); + setLabelText(addressLabel, client.getAddress().value); + setLabelText(emailLabel, client.getEmail().value); + setLabelText(jobLabel, client.getJob().value); + setLabelText(incomeLabel, String.valueOf(client.getIncome())); + setTier(client.getTier().toParsableString()); + setLabelText(remarkLabel, client.getRemark().value); } else { hideAllFields(); } @@ -136,7 +136,7 @@ private void setTier(String tier) { /** * Shows all fields in the detail panel by setting their managed and visible properties to true. - * This is used when displaying a person's details. + * This is used when displaying a client's details. */ private void showAllFields() { setManagedAndVisible(nameLabel, true); diff --git a/src/main/java/seedu/address/ui/ClientListPanel.java b/src/main/java/seedu/address/ui/ClientListPanel.java new file mode 100644 index 00000000000..4d91c38159a --- /dev/null +++ b/src/main/java/seedu/address/ui/ClientListPanel.java @@ -0,0 +1,53 @@ +package seedu.address.ui; + +import java.util.logging.Logger; + +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.scene.layout.Region; +import seedu.address.commons.core.LogsCenter; +import seedu.address.model.client.Client; + +/** + * Panel containing the list of clients. + */ +public class ClientListPanel extends UiPart { + private static final String FXML = "ClientListPanel.fxml"; + private final Logger logger = LogsCenter.getLogger(ClientListPanel.class); + + @FXML + private ListView clientListView; + + /** + * Creates a {@code ClientListPanel} with the given {@code ObservableList}. + */ + public ClientListPanel(ObservableList clientList) { + super(FXML); + clientListView.setItems(clientList); + clientListView.setCellFactory(listView -> new ClientListViewCell()); + } + + public ListView getListView() { + return clientListView; + } + + /** + * Custom {@code ListCell} that displays the graphics of a {@code Client} using a {@code ClientCard}. + */ + class ClientListViewCell extends ListCell { + @Override + protected void updateItem(Client client, boolean empty) { + super.updateItem(client, empty); + + if (empty || client== null) { + setGraphic(null); + setText(null); + } else { + setGraphic(new ClientCard(client, getIndex() + 1).getRoot()); + } + } + } + +} diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index fa133be5c55..2833e73ae99 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -18,7 +18,7 @@ import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * The Main Window. Provides the basic application layout containing @@ -33,8 +33,8 @@ public class MainWindow extends UiPart { private Stage primaryStage; private Logic logic; - private PersonListPanel personListPanel; - private PersonDetailPanel personDetailPanel; + private ClientListPanel clientListPanel; + private ClientDetailPanel clientDetailPanel; private ResultDisplay resultDisplay; private HelpWindow helpWindow; @@ -48,10 +48,10 @@ public class MainWindow extends UiPart { private SplitPane splitPane; @FXML - private StackPane personListPanelPlaceholder; + private StackPane clientListPanelPlaceholder; @FXML - private StackPane personDetailsPanelPlaceholder; + private StackPane clientDetailsPanelPlaceholder; @FXML private StackPane resultDisplayPlaceholder; @@ -113,11 +113,11 @@ private void setAccelerator(MenuItem menuItem, KeyCombination keyCombination) { * Fills up all the placeholders of this window. */ void fillInnerParts() { - personListPanel = new PersonListPanel(logic.getFilteredPersonList()); - personListPanelPlaceholder.getChildren().add(personListPanel.getRoot()); + clientListPanel = new ClientListPanel(logic.getFilteredClientList()); + clientListPanelPlaceholder.getChildren().add(clientListPanel.getRoot()); - personDetailPanel = new PersonDetailPanel(); - personDetailsPanelPlaceholder.getChildren().add(personDetailPanel.getRoot()); + clientDetailPanel = new ClientDetailPanel(); + clientDetailsPanelPlaceholder.getChildren().add(clientDetailPanel.getRoot()); resultDisplay = new ResultDisplay(); resultDisplayPlaceholder.getChildren().add(resultDisplay.getRoot()); @@ -134,7 +134,7 @@ void fillInnerParts() { splitPane.setDividerPositions(0.6); }); - splitPane.getItems().remove(personDetailsPanelPlaceholder); + splitPane.getItems().remove(clientDetailsPanelPlaceholder); } /** @@ -181,15 +181,15 @@ private void handleExit() { } /** - * Handles the view command by updating the UI to show person details. + * Handles the view command by updating the UI to show client details. * If the details panel is not visible, adds it to the split pane. - * Updates the person details based on the provided index in the command. + * Updates the client details based on the provided index in the command. * * @param commandText The full command text containing the view command and index */ private void handleViewCommand(String commandText) { - if (!splitPane.getItems().contains(personDetailsPanelPlaceholder)) { - splitPane.getItems().add(personDetailsPanelPlaceholder); + if (!splitPane.getItems().contains(clientDetailsPanelPlaceholder)) { + splitPane.getItems().add(clientDetailsPanelPlaceholder); placeholderImage.setVisible(false); splitPane.setDividerPositions(0.6); } @@ -198,19 +198,19 @@ private void handleViewCommand(String commandText) { if (commandParts.length > 1) { try { int index = Integer.parseInt(commandParts[1]) - 1; // Assuming 1-based indexing in UI - Person personToView = logic.getFilteredPersonList().get(index); - personDetailPanel.setPersonDetails(personToView); + Client clientToView = logic.getFilteredClientList().get(index); + clientDetailPanel.setClientDetails(clientToView); } catch (NumberFormatException | IndexOutOfBoundsException e) { // Handle invalid index - resultDisplay.setFeedbackToUser("Invalid person index."); + resultDisplay.setFeedbackToUser("Invalid client index."); } } else { - resultDisplay.setFeedbackToUser("Please provide a person index to view."); + resultDisplay.setFeedbackToUser("Please provide a client index to view."); } } private void handleCloseCommand() { - splitPane.getItems().remove(personDetailsPanelPlaceholder); + splitPane.getItems().remove(clientDetailsPanelPlaceholder); } /** @@ -224,7 +224,7 @@ private CommandResult executeCommand(String commandText) throws CommandException logger.info("Result: " + commandResult.getFeedbackToUser()); resultDisplay.setFeedbackToUser(commandResult.getFeedbackToUser()); - if (commandResult.isShowPerson()) { + if (commandResult.isShowClient()) { handleViewCommand(commandText); } else { handleCloseCommand(); diff --git a/src/main/java/seedu/address/ui/PersonListPanel.java b/src/main/java/seedu/address/ui/PersonListPanel.java deleted file mode 100644 index f52048b99af..00000000000 --- a/src/main/java/seedu/address/ui/PersonListPanel.java +++ /dev/null @@ -1,53 +0,0 @@ -package seedu.address.ui; - -import java.util.logging.Logger; - -import javafx.collections.ObservableList; -import javafx.fxml.FXML; -import javafx.scene.control.ListCell; -import javafx.scene.control.ListView; -import javafx.scene.layout.Region; -import seedu.address.commons.core.LogsCenter; -import seedu.address.model.person.Person; - -/** - * Panel containing the list of persons. - */ -public class PersonListPanel extends UiPart { - private static final String FXML = "PersonListPanel.fxml"; - private final Logger logger = LogsCenter.getLogger(PersonListPanel.class); - - @FXML - private ListView personListView; - - /** - * Creates a {@code PersonListPanel} with the given {@code ObservableList}. - */ - public PersonListPanel(ObservableList personList) { - super(FXML); - personListView.setItems(personList); - personListView.setCellFactory(listView -> new PersonListViewCell()); - } - - public ListView getListView() { - return personListView; - } - - /** - * Custom {@code ListCell} that displays the graphics of a {@code Person} using a {@code PersonCard}. - */ - class PersonListViewCell extends ListCell { - @Override - protected void updateItem(Person person, boolean empty) { - super.updateItem(person, empty); - - if (empty || person == null) { - setGraphic(null); - setText(null); - } else { - setGraphic(new PersonCard(person, getIndex() + 1).getRoot()); - } - } - } - -} diff --git a/src/main/resources/view/PersonDetailPanel.fxml b/src/main/resources/view/ClientDetailPanel.fxml similarity index 97% rename from src/main/resources/view/PersonDetailPanel.fxml rename to src/main/resources/view/ClientDetailPanel.fxml index 50e2c59e196..70c67663ffc 100644 --- a/src/main/resources/view/PersonDetailPanel.fxml +++ b/src/main/resources/view/ClientDetailPanel.fxml @@ -12,7 +12,7 @@ - + diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/ClientListCard.fxml similarity index 100% rename from src/main/resources/view/PersonListCard.fxml rename to src/main/resources/view/ClientListCard.fxml diff --git a/src/main/resources/view/PersonListPanel.fxml b/src/main/resources/view/ClientListPanel.fxml similarity index 77% rename from src/main/resources/view/PersonListPanel.fxml rename to src/main/resources/view/ClientListPanel.fxml index a1bb6bbace8..8f6f00f1faf 100644 --- a/src/main/resources/view/PersonListPanel.fxml +++ b/src/main/resources/view/ClientListPanel.fxml @@ -4,5 +4,5 @@ - + diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index ec6da4e63bf..b3a5246ef7c 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -48,13 +48,13 @@ - + - + - + diff --git a/src/main/resources/view/css/DarkTheme.css b/src/main/resources/view/css/DarkTheme.css index 5e5a8672d86..02b7c39c472 100644 --- a/src/main/resources/view/css/DarkTheme.css +++ b/src/main/resources/view/css/DarkTheme.css @@ -347,7 +347,7 @@ -fx-text-fill: #1C1C1C; } -#filterField, #personListPanel, #personWebpage { +#filterField, #clientListPanel, #clientWebpage { -fx-effect: innershadow(gaussian, black, 10, 0, 0, 0); } @@ -402,7 +402,7 @@ -fx-font-weight: bold; } -#personDetailsPanelPlaceholder { +#clientDetailsPanelPlaceholder { -fx-background-color: #383838; } diff --git a/src/test/data/JsonAgentAssistStorageTest/invalidAndValidPersonAgentAssist.json b/src/test/data/JsonAgentAssistStorageTest/invalidAndValidClientAgentAssist.json similarity index 67% rename from src/test/data/JsonAgentAssistStorageTest/invalidAndValidPersonAgentAssist.json rename to src/test/data/JsonAgentAssistStorageTest/invalidAndValidClientAgentAssist.json index e87ca5d7152..a9df2f3e3d5 100644 --- a/src/test/data/JsonAgentAssistStorageTest/invalidAndValidPersonAgentAssist.json +++ b/src/test/data/JsonAgentAssistStorageTest/invalidAndValidClientAgentAssist.json @@ -1,11 +1,11 @@ { - "persons": [ { - "name": "Valid Person", + "clients": [ { + "name": "Valid Client", "phone": "94824240", "email": "hans@example.com", "address": "4th street" }, { - "name": "Person With Invalid Phone Field", + "name": "Client With Invalid Phone Field", "phone": "948asdf2424", "email": "hans@example.com", "address": "4th street" diff --git a/src/test/data/JsonAgentAssistStorageTest/invalidPersonAgentAssist.json b/src/test/data/JsonAgentAssistStorageTest/invalidClientAgentAssist.json similarity index 55% rename from src/test/data/JsonAgentAssistStorageTest/invalidPersonAgentAssist.json rename to src/test/data/JsonAgentAssistStorageTest/invalidClientAgentAssist.json index 7261e6d53ba..d27d3d6ee67 100644 --- a/src/test/data/JsonAgentAssistStorageTest/invalidPersonAgentAssist.json +++ b/src/test/data/JsonAgentAssistStorageTest/invalidClientAgentAssist.json @@ -1,6 +1,6 @@ { - "persons": [ { - "name": "Person with invalid name field: Ha!ns Mu@ster", + "clients": [ { + "name": "Client with invalid name field: Ha!ns Mu@ster", "phone": "94824240", "email": "hans@example.com", "address": "4th street" diff --git a/src/test/data/JsonSerializableAgentAssistTest/duplicatePersonAgentAssist.json b/src/test/data/JsonSerializableAgentAssistTest/duplicateClientAgentAssist.json similarity index 96% rename from src/test/data/JsonSerializableAgentAssistTest/duplicatePersonAgentAssist.json rename to src/test/data/JsonSerializableAgentAssistTest/duplicateClientAgentAssist.json index 43372661c59..f76ef7204b3 100644 --- a/src/test/data/JsonSerializableAgentAssistTest/duplicatePersonAgentAssist.json +++ b/src/test/data/JsonSerializableAgentAssistTest/duplicateClientAgentAssist.json @@ -1,5 +1,5 @@ { - "persons": [ { + "clients": [ { "name": "Alice Pauline", "phone": "94351253", "email": "alice@example.com", diff --git a/src/test/data/JsonSerializableAgentAssistTest/invalidPersonAgentAssist.json b/src/test/data/JsonSerializableAgentAssistTest/invalidClientAgentAssist.json similarity index 87% rename from src/test/data/JsonSerializableAgentAssistTest/invalidPersonAgentAssist.json rename to src/test/data/JsonSerializableAgentAssistTest/invalidClientAgentAssist.json index 99189ebf13c..9fd5555be3e 100644 --- a/src/test/data/JsonSerializableAgentAssistTest/invalidPersonAgentAssist.json +++ b/src/test/data/JsonSerializableAgentAssistTest/invalidClientAgentAssist.json @@ -1,5 +1,5 @@ { - "persons": [ { + "clients": [ { "name": "Hans Muster", "phone": "94824240", "email": "invalid@email!3e", diff --git a/src/test/data/JsonSerializableAgentAssistTest/typicalPersonsAgentAssist.json b/src/test/data/JsonSerializableAgentAssistTest/typicalClientsAgentAssist.json similarity index 90% rename from src/test/data/JsonSerializableAgentAssistTest/typicalPersonsAgentAssist.json rename to src/test/data/JsonSerializableAgentAssistTest/typicalClientsAgentAssist.json index 115e026744d..532e5f4074c 100644 --- a/src/test/data/JsonSerializableAgentAssistTest/typicalPersonsAgentAssist.json +++ b/src/test/data/JsonSerializableAgentAssistTest/typicalClientsAgentAssist.json @@ -1,6 +1,6 @@ { - "_comment": "AgentAssist save file which contains the same Person values as in TypicalPersons#getTypicalAgentAssist()", - "persons": [ + "_comment": "AgentAssist save file which contains the same Client values as in TypicalClients#getTypicalAgentAssist()", + "clients": [ { "name": "Alice Pauline", "phone": "94351253", @@ -59,7 +59,7 @@ "job": "Chef", "income": "45", "assignedTier": "NA", - "remark": "Rich japanese person" + "remark": "Rich japanese client" }, { "name": "George Best", diff --git a/src/test/java/seedu/address/commons/core/index/IndexTest.java b/src/test/java/seedu/address/commons/core/index/IndexTest.java index fc395ab964b..2c4531f9896 100644 --- a/src/test/java/seedu/address/commons/core/index/IndexTest.java +++ b/src/test/java/seedu/address/commons/core/index/IndexTest.java @@ -39,23 +39,23 @@ public void createZeroBasedIndex() { @Test public void equals() { - final Index fifthPersonIndex = Index.fromOneBased(5); + final Index fifthClientIndex = Index.fromOneBased(5); // same values -> returns true - assertTrue(fifthPersonIndex.equals(Index.fromOneBased(5))); - assertTrue(fifthPersonIndex.equals(Index.fromZeroBased(4))); + assertTrue(fifthClientIndex.equals(Index.fromOneBased(5))); + assertTrue(fifthClientIndex.equals(Index.fromZeroBased(4))); // same object -> returns true - assertTrue(fifthPersonIndex.equals(fifthPersonIndex)); + assertTrue(fifthClientIndex.equals(fifthClientIndex)); // null -> returns false - assertFalse(fifthPersonIndex.equals(null)); + assertFalse(fifthClientIndex.equals(null)); // different types -> returns false - assertFalse(fifthPersonIndex.equals(5.0f)); + assertFalse(fifthClientIndex.equals(5.0f)); // different index -> returns false - assertFalse(fifthPersonIndex.equals(Index.fromOneBased(1))); + assertFalse(fifthClientIndex.equals(Index.fromOneBased(1))); } @Test diff --git a/src/test/java/seedu/address/logic/LogicManagerTest.java b/src/test/java/seedu/address/logic/LogicManagerTest.java index 909d7c36285..494e854c0e4 100644 --- a/src/test/java/seedu/address/logic/LogicManagerTest.java +++ b/src/test/java/seedu/address/logic/LogicManagerTest.java @@ -1,7 +1,7 @@ package seedu.address.logic; import static org.junit.jupiter.api.Assertions.assertEquals; -import static seedu.address.logic.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; +import static seedu.address.logic.Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX; import static seedu.address.logic.Messages.MESSAGE_UNKNOWN_COMMAND; import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; @@ -11,7 +11,7 @@ import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_AMY; import static seedu.address.logic.commands.DeleteCommand.MESSAGE_DELETE_CONFIRMATION; import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.AMY; +import static seedu.address.testutil.TypicalClients.AMY; import java.io.IOException; import java.nio.file.AccessDeniedException; @@ -30,11 +30,11 @@ import seedu.address.model.ModelManager; import seedu.address.model.ReadOnlyAgentAssist; import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; import seedu.address.storage.JsonAgentAssistStorage; import seedu.address.storage.JsonUserPrefsStorage; import seedu.address.storage.StorageManager; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; public class LogicManagerTest { private static final IOException DUMMY_IO_EXCEPTION = new IOException("dummy IO exception"); @@ -78,7 +78,7 @@ public void execute_cancelDeleteCommand_success() throws CommandException, Parse public void execute_commandExecutionError_throwsCommandException() throws CommandException, ParseException { String[] deleteCommand = {"delete 9", "y"}; logic.execute(deleteCommand[0]); - assertThrows(CommandException.class, MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, () -> + assertThrows(CommandException.class, MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX, () -> logic.execute(deleteCommand[1])); } @@ -101,8 +101,8 @@ public void execute_storageThrowsAdException_throwsCommandException() { } @Test - public void getFilteredPersonList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () -> logic.getFilteredPersonList().remove(0)); + public void getFilteredClientList_modifyList_throwsUnsupportedOperationException() { + assertThrows(UnsupportedOperationException.class, () -> logic.getFilteredClientList().remove(0)); } /** @@ -136,8 +136,8 @@ private void assertCommandSuccess(String inputCommand, String expectedMessage, CommandResult result = logic.execute(inputCommand); assertEquals(expectedMessage, result.getFeedbackToUser()); assertEquals(expectedModel.getAgentAssist(), model.getAgentAssist()); - assertEquals(expectedModel.getFilteredPersonList(), model.getFilteredPersonList()); - assertEquals(expectedModel.getSelectedPerson(), model.getSelectedPerson()); + assertEquals(expectedModel.getFilteredClientList(), model.getFilteredClientList()); + assertEquals(expectedModel.getSelectedClient(), model.getSelectedClient()); } /** * Executes the command, confirms that a ParseException is thrown and that the result message is correct. @@ -205,9 +205,9 @@ public void saveAgentAssist(ReadOnlyAgentAssist agentAssist, Path filePath) // Triggers the saveAgentAssist method by executing an add command String addCommand = AddCommand.COMMAND_WORD + NAME_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY + ADDRESS_DESC_AMY + JOB_DESC_AMY + INCOME_DESC_AMY; - Person expectedPerson = new PersonBuilder(AMY).build(); + Client expectedClient = new ClientBuilder(AMY).build(); ModelManager expectedModel = new ModelManager(); - expectedModel.addPerson(expectedPerson); + expectedModel.addClient(expectedClient); assertCommandFailure(addCommand, CommandException.class, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java b/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java index 621e79f35f8..8711c1a4bfe 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java @@ -2,7 +2,7 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -11,8 +11,8 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; -import seedu.address.testutil.PersonBuilder; +import seedu.address.model.client.Client; +import seedu.address.testutil.ClientBuilder; /** * Contains integration tests (interaction with the Model) for {@code AddCommand}. @@ -27,34 +27,34 @@ public void setUp() { } @Test - public void execute_newPerson_success() { - Person validPerson = new PersonBuilder().build(); + public void execute_newClient_success() { + Client validClient = new ClientBuilder().build(); Model expectedModel = new ModelManager(model.getAgentAssist(), new UserPrefs()); - expectedModel.addPerson(validPerson); + expectedModel.addClient(validClient); - assertCommandSuccess(new AddCommand(validPerson), model, - String.format(AddCommand.MESSAGE_SUCCESS, Messages.format(validPerson)), + assertCommandSuccess(new AddCommand(validClient), model, + String.format(AddCommand.MESSAGE_SUCCESS, Messages.format(validClient)), expectedModel); } @Test - public void execute_newPersonWithTierAndRemarkAndStatus_success() { - Person validPerson = - new PersonBuilder().withTier("GOLD").withRemark("big brained").withStatus("urgent").build(); + public void execute_newClientWithTierAndRemarkAndStatus_success() { + Client validClient = + new ClientBuilder().withTier("GOLD").withRemark("big brained").withStatus("urgent").build(); Model expectedModel = new ModelManager(model.getAgentAssist(), new UserPrefs()); - expectedModel.addPerson(validPerson); + expectedModel.addClient(validClient); - assertCommandSuccess(new AddCommand(validPerson), model, - String.format(AddCommand.MESSAGE_SUCCESS, Messages.format(validPerson)), + assertCommandSuccess(new AddCommand(validClient), model, + String.format(AddCommand.MESSAGE_SUCCESS, Messages.format(validClient)), expectedModel); } @Test - public void execute_duplicatePerson_throwsCommandException() { - Person personInList = model.getAgentAssist().getPersonList().get(0); - assertCommandFailure(new AddCommand(personInList), model, - AddCommand.MESSAGE_DUPLICATE_PERSON); + public void execute_duplicateClient_throwsCommandException() { + Client clientInList = model.getAgentAssist().getClientList().get(0); + assertCommandFailure(new AddCommand(clientInList), model, + AddCommand.MESSAGE_DUPLICATE_CLIENT); } } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index c259ccbdfb1..a236cde55d4 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -5,7 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; +import static seedu.address.testutil.TypicalClients.ALICE; import java.nio.file.Path; import java.util.ArrayList; @@ -23,41 +23,41 @@ import seedu.address.model.Model; import seedu.address.model.ReadOnlyAgentAssist; import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.person.Person; -import seedu.address.testutil.PersonBuilder; +import seedu.address.model.client.Client; +import seedu.address.testutil.ClientBuilder; public class AddCommandTest { @Test - public void constructor_nullPerson_throwsNullPointerException() { + public void constructor_nullClient_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> new AddCommand(null)); } @Test - public void execute_personAcceptedByModel_addSuccessful() throws Exception { - ModelStubAcceptingPersonAdded modelStub = new ModelStubAcceptingPersonAdded(); - Person validPerson = new PersonBuilder().build(); + public void execute_clientAcceptedByModel_addSuccessful() throws Exception { + ModelStubAcceptingClientAdded modelStub = new ModelStubAcceptingClientAdded(); + Client validClient = new ClientBuilder().build(); - CommandResult commandResult = new AddCommand(validPerson).execute(modelStub); + CommandResult commandResult = new AddCommand(validClient).execute(modelStub); - assertEquals(String.format(AddCommand.MESSAGE_SUCCESS, Messages.format(validPerson)), + assertEquals(String.format(AddCommand.MESSAGE_SUCCESS, Messages.format(validClient)), commandResult.getFeedbackToUser()); - assertEquals(Arrays.asList(validPerson), modelStub.personsAdded); + assertEquals(Arrays.asList(validClient), modelStub.clientsAdded); } @Test - public void execute_duplicatePerson_throwsCommandException() { - Person validPerson = new PersonBuilder().build(); - AddCommand addCommand = new AddCommand(validPerson); - ModelStub modelStub = new ModelStubWithPerson(validPerson); + public void execute_duplicateClient_throwsCommandException() { + Client validClient = new ClientBuilder().build(); + AddCommand addCommand = new AddCommand(validClient); + ModelStub modelStub = new ModelStubWithClient(validClient); - assertThrows(CommandException.class, AddCommand.MESSAGE_DUPLICATE_PERSON, () -> addCommand.execute(modelStub)); + assertThrows(CommandException.class, AddCommand.MESSAGE_DUPLICATE_CLIENT, () -> addCommand.execute(modelStub)); } @Test public void equals() { - Person alice = new PersonBuilder().withName("Alice").build(); - Person bob = new PersonBuilder().withName("Bob").build(); + Client alice = new ClientBuilder().withName("Alice").build(); + Client bob = new ClientBuilder().withName("Bob").build(); AddCommand addAliceCommand = new AddCommand(alice); AddCommand addBobCommand = new AddCommand(bob); @@ -74,7 +74,7 @@ public void equals() { // null -> returns false assertFalse(addAliceCommand.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(addAliceCommand.equals(addBobCommand)); } @@ -120,7 +120,7 @@ public void setAgentAssistFilePath(Path agentAssistFilePath) { } @Override - public void addPerson(Person person) { + public void addClient(Client client) { throw new AssertionError("This method should not be called."); } @@ -135,17 +135,17 @@ public ReadOnlyAgentAssist getAgentAssist() { } @Override - public boolean hasPerson(Person person) { + public boolean hasClient(Client client) { throw new AssertionError("This method should not be called."); } @Override - public void deletePerson(Person target) { + public void deleteClient(Client target) { throw new AssertionError("This method should not be called."); } @Override - public void setPerson(Person target, Person editedPerson) { + public void setClient(Client target, Client editedClient) { throw new AssertionError("This method should not be called."); } @@ -160,65 +160,65 @@ public boolean hasPreviousCommand() { } @Override - public ObservableList getFilteredPersonList() { + public ObservableList getFilteredClientList() { throw new AssertionError("This method should not be called."); } @Override - public void updateFilteredPersonList(Predicate predicate) { + public void updateFilteredClientList(Predicate predicate) { throw new AssertionError("This method should not be called."); } @Override - public ReadOnlyProperty selectedPersonProperty() { + public ReadOnlyProperty selectedClientProperty() { throw new AssertionError("This method should not be called."); } @Override - public Person getSelectedPerson() { + public Client getSelectedClient() { throw new AssertionError("This method should not be called."); } @Override - public void setSelectedPerson(Person person) { + public void setSelectedClient(Client client) { throw new AssertionError("This method should not be called."); } } /** - * A Model stub that contains a single person. + * A Model stub that contains a single client. */ - private class ModelStubWithPerson extends ModelStub { - private final Person person; + private class ModelStubWithClient extends ModelStub { + private final Client client; - ModelStubWithPerson(Person person) { - requireNonNull(person); - this.person = person; + ModelStubWithClient(Client client) { + requireNonNull(client); + this.client = client; } @Override - public boolean hasPerson(Person person) { - requireNonNull(person); - return this.person.isSamePerson(person); + public boolean hasClient(Client client) { + requireNonNull(client); + return this.client.isSameClient(client); } } /** - * A Model stub that always accept the person being added. + * A Model stub that always accept the client being added. */ - private class ModelStubAcceptingPersonAdded extends ModelStub { - final ArrayList personsAdded = new ArrayList<>(); + private class ModelStubAcceptingClientAdded extends ModelStub { + final ArrayList clientsAdded = new ArrayList<>(); @Override - public boolean hasPerson(Person person) { - requireNonNull(person); - return personsAdded.stream().anyMatch(person::isSamePerson); + public boolean hasClient(Client client) { + requireNonNull(client); + return clientsAdded.stream().anyMatch(client::isSameClient); } @Override - public void addPerson(Person person) { - requireNonNull(person); - personsAdded.add(person); + public void addClient(Client client) { + requireNonNull(client); + clientsAdded.add(client); } @Override diff --git a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java index e6006224e3b..377a1fad425 100644 --- a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java @@ -1,7 +1,7 @@ package seedu.address.logic.commands; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/logic/commands/CommandResultTest.java b/src/test/java/seedu/address/logic/commands/CommandResultTest.java index f78c6f4f332..af2795fddb6 100644 --- a/src/test/java/seedu/address/logic/commands/CommandResultTest.java +++ b/src/test/java/seedu/address/logic/commands/CommandResultTest.java @@ -4,7 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandCommons.EMPTY_PERSON; +import static seedu.address.logic.commands.CommandCommons.EMPTY_CLIENT; import org.junit.jupiter.api.Test; @@ -15,7 +15,7 @@ public void equals() { // same values -> returns true assertTrue(commandResult.equals(new CommandResult("feedback"))); - assertTrue(commandResult.equals(new CommandResult("feedback", false, false, false, EMPTY_PERSON, false))); + assertTrue(commandResult.equals(new CommandResult("feedback", false, false, false, EMPTY_CLIENT, false))); // same object -> returns true assertTrue(commandResult.equals(commandResult)); @@ -31,11 +31,11 @@ public void equals() { // different showHelp value -> returns false assertFalse(commandResult.equals(new CommandResult("feedback", - true, false, false, EMPTY_PERSON, false))); + true, false, false, EMPTY_CLIENT, false))); // different exit value -> returns false assertFalse(commandResult.equals(new CommandResult("feedback", - false, true, false, EMPTY_PERSON, false))); + false, true, false, EMPTY_CLIENT, false))); } @Test @@ -50,11 +50,11 @@ public void hashcode() { // different showHelp value -> returns different hashcode assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", - true, false, false, EMPTY_PERSON, false).hashCode()); + true, false, false, EMPTY_CLIENT, false).hashCode()); // different exit value -> returns different hashcode assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", - false, true, false, EMPTY_PERSON, false).hashCode()); + false, true, false, EMPTY_CLIENT, false).hashCode()); } @Test diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 0259d5b6e83..b41c59366ce 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -22,9 +22,9 @@ import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AgentAssist; import seedu.address.model.Model; -import seedu.address.model.person.Person; -import seedu.address.model.person.predicates.NameContainsSubstringPredicate; -import seedu.address.testutil.EditPersonDescriptorBuilder; +import seedu.address.model.client.Client; +import seedu.address.model.client.predicates.NameContainsSubstringPredicate; +import seedu.address.testutil.EditClientDescriptorBuilder; /** * Contains helper methods for testing commands. @@ -88,16 +88,16 @@ public class CommandTestUtil { public static final String PREAMBLE_NON_EMPTY = "NonEmptyPreamble"; - public static final EditCommand.EditPersonDescriptor DESC_AMY; - public static final EditCommand.EditPersonDescriptor DESC_BOB; + public static final EditCommand.EditClientDescriptor DESC_AMY; + public static final EditCommand.EditClientDescriptor DESC_BOB; static { - DESC_AMY = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY) + DESC_AMY = new EditClientDescriptorBuilder().withName(VALID_NAME_AMY) .withPhone(VALID_PHONE_AMY).withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY) .withJob(VALID_JOB_AMY).withIncome(Integer.parseInt(VALID_INCOME_AMY)) .withTier(VALID_TIER_GOLD).withNewRemark(VALID_REMARK_AMY).build(); - DESC_BOB = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) + DESC_BOB = new EditClientDescriptorBuilder().withName(VALID_NAME_BOB) .withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB) .withJob(VALID_JOB_BOB).withIncome(Integer.parseInt(VALID_INCOME_BOB)) .withTier(VALID_TIER_REJECT).withNewRemark(VALID_REMARK_BOB).build(); @@ -133,31 +133,31 @@ public static void assertCommandSuccess(Command command, Model actualModel, Stri * Executes the given {@code command}, confirms that
    * - a {@code CommandException} is thrown
    * - the CommandException message matches {@code expectedMessage}
    - * - the address book, filtered person list and selected person in {@code actualModel} remain unchanged + * - the address book, filtered client list and selected client in {@code actualModel} remain unchanged */ public static void assertCommandFailure(Command command, Model actualModel, String expectedMessage) { // we are unable to defensively copy the model for comparison later, so we can // only do so by copying its components. AgentAssist expectedAgentAssist = new AgentAssist(actualModel.getAgentAssist()); - List expectedFilteredList = new ArrayList<>(actualModel.getFilteredPersonList()); + List expectedFilteredList = new ArrayList<>(actualModel.getFilteredClientList()); assertThrows(CommandException.class, expectedMessage, () -> command.execute(actualModel)); assertEquals(expectedAgentAssist, actualModel.getAgentAssist()); - assertEquals(expectedFilteredList, actualModel.getFilteredPersonList()); + assertEquals(expectedFilteredList, actualModel.getFilteredClientList()); } /** - * Updates {@code model}'s filtered list to show only the person at the given {@code targetIndex} in the + * Updates {@code model}'s filtered list to show only the client at the given {@code targetIndex} in the * {@code model}'s address book. */ - public static void showPersonAtIndex(Model model, Index targetIndex) { - assertTrue(targetIndex.getZeroBased() < model.getFilteredPersonList().size()); + public static void showClientAtIndex(Model model, Index targetIndex) { + assertTrue(targetIndex.getZeroBased() < model.getFilteredClientList().size()); - Person person = model.getFilteredPersonList().get(targetIndex.getZeroBased()); - final String[] splitName = person.getName().fullName.split("\\s+"); - model.updateFilteredPersonList(new NameContainsSubstringPredicate(splitName[0])); + Client client = model.getFilteredClientList().get(targetIndex.getZeroBased()); + final String[] splitName = client.getName().fullName.split("\\s+"); + model.updateFilteredClientList(new NameContainsSubstringPredicate(splitName[0])); - assertEquals(1, model.getFilteredPersonList().size()); + assertEquals(1, model.getFilteredClientList().size()); } } diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java index 865f0e5eca6..837fe953c57 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java @@ -5,10 +5,10 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.logic.commands.CommandTestUtil.showClientAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_CLIENT; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import org.junit.jupiter.api.Test; @@ -17,7 +17,7 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * Contains integration tests (interaction with the Model) and unit tests for @@ -29,66 +29,66 @@ public class DeleteCommandTest { @Test public void execute_validIndexUnfilteredList_success() { - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_PERSON); + Client clientToDelete = model.getFilteredClientList().get(INDEX_FIRST_CLIENT.getZeroBased()); + DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_CLIENT); - String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, - Messages.format(personToDelete)); + String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_CLIENT_SUCCESS, + Messages.format(clientToDelete)); ModelManager expectedModel = new ModelManager(model.getAgentAssist(), new UserPrefs()); - expectedModel.deletePerson(personToDelete); + expectedModel.deleteClient(clientToDelete); assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); } @Test public void execute_invalidIndexUnfilteredList_throwsCommandException() { - Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredClientList().size() + 1); DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex); - assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX); } @Test public void execute_validIndexFilteredList_success() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + showClientAtIndex(model, INDEX_FIRST_CLIENT); - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_PERSON); + Client clientToDelete = model.getFilteredClientList().get(INDEX_FIRST_CLIENT.getZeroBased()); + DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_CLIENT); - String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, - Messages.format(personToDelete)); + String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_CLIENT_SUCCESS, + Messages.format(clientToDelete)); Model expectedModel = new ModelManager(model.getAgentAssist(), new UserPrefs()); - expectedModel.deletePerson(personToDelete); - showNoPerson(expectedModel); + expectedModel.deleteClient(clientToDelete); + showNoClient(expectedModel); assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); } @Test public void execute_invalidIndexFilteredList_throwsCommandException() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + showClientAtIndex(model, INDEX_FIRST_CLIENT); - Index outOfBoundIndex = INDEX_SECOND_PERSON; + Index outOfBoundIndex = INDEX_SECOND_CLIENT; // ensures that outOfBoundIndex is still in bounds of address book list - assertTrue(outOfBoundIndex.getZeroBased() < model.getAgentAssist().getPersonList().size()); + assertTrue(outOfBoundIndex.getZeroBased() < model.getAgentAssist().getClientList().size()); DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex); - assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX); } @Test public void equals() { - DeleteCommand deleteFirstCommand = new DeleteCommand(INDEX_FIRST_PERSON); - DeleteCommand deleteSecondCommand = new DeleteCommand(INDEX_SECOND_PERSON); + DeleteCommand deleteFirstCommand = new DeleteCommand(INDEX_FIRST_CLIENT); + DeleteCommand deleteSecondCommand = new DeleteCommand(INDEX_SECOND_CLIENT); // same object -> returns true assertTrue(deleteFirstCommand.equals(deleteFirstCommand)); // same values -> returns true - DeleteCommand deleteFirstCommandCopy = new DeleteCommand(INDEX_FIRST_PERSON); + DeleteCommand deleteFirstCommandCopy = new DeleteCommand(INDEX_FIRST_CLIENT); assertTrue(deleteFirstCommand.equals(deleteFirstCommandCopy)); // different types -> returns false @@ -97,7 +97,7 @@ public void equals() { // null -> returns false assertFalse(deleteFirstCommand.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(deleteFirstCommand.equals(deleteSecondCommand)); } @@ -112,9 +112,9 @@ public void toStringMethod() { /** * Updates {@code model}'s filtered list to show no one. */ - private void showNoPerson(Model model) { - model.updateFilteredPersonList(p -> false); + private void showNoClient(Model model) { + model.updateFilteredClientList(p -> false); - assertTrue(model.getFilteredPersonList().isEmpty()); + assertTrue(model.getFilteredClientList().isEmpty()); } } diff --git a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java b/src/test/java/seedu/address/logic/commands/EditClientDescriptorTest.java similarity index 63% rename from src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java rename to src/test/java/seedu/address/logic/commands/EditClientDescriptorTest.java index 6e52f6b143a..3ae661177c0 100644 --- a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java +++ b/src/test/java/seedu/address/logic/commands/EditClientDescriptorTest.java @@ -15,15 +15,15 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.testutil.EditPersonDescriptorBuilder; +import seedu.address.logic.commands.EditCommand.EditClientDescriptor; +import seedu.address.testutil.EditClientDescriptorBuilder; -public class EditPersonDescriptorTest { +public class EditClientDescriptorTest { @Test public void equals() { // same values -> returns true - EditPersonDescriptor descriptorWithSameValues = new EditPersonDescriptor(DESC_AMY); + EditClientDescriptor descriptorWithSameValues = new EditClientDescriptor(DESC_AMY); assertTrue(DESC_AMY.equals(descriptorWithSameValues)); // same object -> returns true @@ -39,47 +39,47 @@ public void equals() { assertFalse(DESC_AMY.equals(DESC_BOB)); // different name -> returns false - EditPersonDescriptor editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withName(VALID_NAME_BOB).build(); + EditClientDescriptor editedAmy = new EditClientDescriptorBuilder(DESC_AMY).withName(VALID_NAME_BOB).build(); assertFalse(DESC_AMY.equals(editedAmy)); // different phone -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withPhone(VALID_PHONE_BOB).build(); + editedAmy = new EditClientDescriptorBuilder(DESC_AMY).withPhone(VALID_PHONE_BOB).build(); assertFalse(DESC_AMY.equals(editedAmy)); // different email -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withEmail(VALID_EMAIL_BOB).build(); + editedAmy = new EditClientDescriptorBuilder(DESC_AMY).withEmail(VALID_EMAIL_BOB).build(); assertFalse(DESC_AMY.equals(editedAmy)); // different address -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withAddress(VALID_ADDRESS_BOB).build(); + editedAmy = new EditClientDescriptorBuilder(DESC_AMY).withAddress(VALID_ADDRESS_BOB).build(); assertFalse(DESC_AMY.equals(editedAmy)); // different job -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withAddress(VALID_JOB_BOB).build(); + editedAmy = new EditClientDescriptorBuilder(DESC_AMY).withAddress(VALID_JOB_BOB).build(); assertFalse(DESC_AMY.equals(editedAmy)); // different income level -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withIncome(Integer.parseInt(VALID_INCOME_BOB)).build(); + editedAmy = new EditClientDescriptorBuilder(DESC_AMY).withIncome(Integer.parseInt(VALID_INCOME_BOB)).build(); assertFalse(DESC_AMY.equals(editedAmy)); // different tags -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withTier(VALID_TIER_REJECT).build(); + editedAmy = new EditClientDescriptorBuilder(DESC_AMY).withTier(VALID_TIER_REJECT).build(); assertFalse(DESC_AMY.equals(editedAmy)); } @Test public void toStringMethod() { - EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); - String expected = EditPersonDescriptor.class.getCanonicalName() + "{name=" - + editPersonDescriptor.getName().orElse(null) + ", phone=" - + editPersonDescriptor.getPhone().orElse(null) + ", email=" - + editPersonDescriptor.getEmail().orElse(null) + ", address=" - + editPersonDescriptor.getAddress().orElse(null) + ", job=" - + editPersonDescriptor.getJob().orElse(null) + ", income=" - + editPersonDescriptor.getIncome().orElse(null) + ", tier=" - + editPersonDescriptor.getTier().orElse(null) + ", remark=" - + editPersonDescriptor.getNewRemark().orElse(null) + ", status=" - + editPersonDescriptor.getStatus().orElse(null) + "}"; - assertEquals(expected, editPersonDescriptor.toString()); + EditClientDescriptor editClientDescriptor = new EditClientDescriptor(); + String expected = EditClientDescriptor.class.getCanonicalName() + "{name=" + + editClientDescriptor.getName().orElse(null) + ", phone=" + + editClientDescriptor.getPhone().orElse(null) + ", email=" + + editClientDescriptor.getEmail().orElse(null) + ", address=" + + editClientDescriptor.getAddress().orElse(null) + ", job=" + + editClientDescriptor.getJob().orElse(null) + ", income=" + + editClientDescriptor.getIncome().orElse(null) + ", tier=" + + editClientDescriptor.getTier().orElse(null) + ", remark=" + + editClientDescriptor.getNewRemark().orElse(null) + ", status=" + + editClientDescriptor.getStatus().orElse(null) + "}"; + assertEquals(expected, editClientDescriptor.toString()); } } diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/seedu/address/logic/commands/EditCommandTest.java index 520b6bd122b..fb7850d230a 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditCommandTest.java @@ -10,23 +10,23 @@ import static seedu.address.logic.commands.CommandTestUtil.VALID_TIER_REJECT; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.logic.commands.CommandTestUtil.showClientAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_CLIENT; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import org.junit.jupiter.api.Test; import seedu.address.commons.core.index.Index; import seedu.address.logic.Messages; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; +import seedu.address.logic.commands.EditCommand.EditClientDescriptor; import seedu.address.model.AgentAssist; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; -import seedu.address.testutil.EditPersonDescriptorBuilder; -import seedu.address.testutil.PersonBuilder; +import seedu.address.model.client.Client; +import seedu.address.testutil.ClientBuilder; +import seedu.address.testutil.EditClientDescriptorBuilder; /** * Contains integration tests (interaction with the Model) and unit tests for EditCommand. @@ -37,45 +37,45 @@ public class EditCommandTest { @Test public void execute_allFieldsSpecifiedUnfilteredList_success() { - Person editedPerson = new PersonBuilder().build(); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, descriptor); + Client editedClient = new ClientBuilder().build(); + EditClientDescriptor descriptor = new EditClientDescriptorBuilder(editedClient).build(); + EditCommand editCommand = new EditCommand(INDEX_FIRST_CLIENT, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); + String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_CLIENT_SUCCESS, Messages.format(editedClient)); Model expectedModel = new ModelManager(new AgentAssist(model.getAgentAssist()), new UserPrefs()); - expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); + expectedModel.setClient(model.getFilteredClientList().get(0), editedClient); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @Test public void execute_someFieldsSpecifiedUnfilteredList_success() { - Index indexLastPerson = Index.fromOneBased(model.getFilteredPersonList().size()); - Person lastPerson = model.getFilteredPersonList().get(indexLastPerson.getZeroBased()); + Index indexLastClient = Index.fromOneBased(model.getFilteredClientList().size()); + Client lastClient = model.getFilteredClientList().get(indexLastClient.getZeroBased()); - PersonBuilder personInList = new PersonBuilder(lastPerson); - Person editedPerson = personInList.withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) + ClientBuilder clientInList = new ClientBuilder(lastClient); + Client editedClient = clientInList.withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) .withTier(VALID_TIER_REJECT).build(); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) + EditClientDescriptor descriptor = new EditClientDescriptorBuilder().withName(VALID_NAME_BOB) .withPhone(VALID_PHONE_BOB).withTier(VALID_TIER_REJECT).build(); - EditCommand editCommand = new EditCommand(indexLastPerson, descriptor); + EditCommand editCommand = new EditCommand(indexLastClient, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); + String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_CLIENT_SUCCESS, Messages.format(editedClient)); Model expectedModel = new ModelManager(new AgentAssist(model.getAgentAssist()), new UserPrefs()); - expectedModel.setPerson(lastPerson, editedPerson); + expectedModel.setClient(lastClient, editedClient); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @Test public void execute_noFieldSpecifiedUnfilteredList_success() { - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, new EditPersonDescriptor()); - Person editedPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + EditCommand editCommand = new EditCommand(INDEX_FIRST_CLIENT, new EditClientDescriptor()); + Client editedClient = model.getFilteredClientList().get(INDEX_FIRST_CLIENT.getZeroBased()); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); + String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_CLIENT_SUCCESS, Messages.format(editedClient)); Model expectedModel = new ModelManager(new AgentAssist(model.getAgentAssist()), new UserPrefs()); @@ -83,44 +83,44 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { } @Test public void execute_appendRemarkFieldsSpecifiedUnfilteredList_success() { - Index indexLastPerson = Index.fromOneBased(model.getFilteredPersonList().size()); - Person lastPerson = model.getFilteredPersonList().get(indexLastPerson.getZeroBased()); + Index indexLastClient = Index.fromOneBased(model.getFilteredClientList().size()); + Client lastClient = model.getFilteredClientList().get(indexLastClient.getZeroBased()); - PersonBuilder personInList = new PersonBuilder(lastPerson); - Person editedPerson = personInList.withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) + ClientBuilder clientInList = new ClientBuilder(lastClient); + Client editedClient = clientInList.withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) .withTier(VALID_TIER_REJECT).withRemark(CommandCommons.DEFAULT_REMARK + "\nTest\n").build(); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) + EditClientDescriptor descriptor = new EditClientDescriptorBuilder().withName(VALID_NAME_BOB) .withPhone(VALID_PHONE_BOB).withTier(VALID_TIER_REJECT) .withAppendedRemark("Test").build(); - EditCommand editCommand = new EditCommand(indexLastPerson, descriptor); + EditCommand editCommand = new EditCommand(indexLastClient, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); + String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_CLIENT_SUCCESS, Messages.format(editedClient)); Model expectedModel = new ModelManager(new AgentAssist(model.getAgentAssist()), new UserPrefs()); - expectedModel.setPerson(lastPerson, editedPerson); + expectedModel.setClient(lastClient, editedClient); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @Test public void execute_newRemarkFieldsSpecifiedUnfilteredList_success() { - Index indexLastPerson = Index.fromOneBased(model.getFilteredPersonList().size()); - Person lastPerson = model.getFilteredPersonList().get(indexLastPerson.getZeroBased()); + Index indexLastClient = Index.fromOneBased(model.getFilteredClientList().size()); + Client lastClient = model.getFilteredClientList().get(indexLastClient.getZeroBased()); - PersonBuilder personInList = new PersonBuilder(lastPerson); - Person editedPerson = personInList.withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) + ClientBuilder clientInList = new ClientBuilder(lastClient); + Client editedClient = clientInList.withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) .withTier(VALID_TIER_REJECT).withRemark("Test").build(); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) + EditClientDescriptor descriptor = new EditClientDescriptorBuilder().withName(VALID_NAME_BOB) .withPhone(VALID_PHONE_BOB).withTier(VALID_TIER_REJECT) .withNewRemark("Test").build(); - EditCommand editCommand = new EditCommand(indexLastPerson, descriptor); + EditCommand editCommand = new EditCommand(indexLastClient, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); + String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_CLIENT_SUCCESS, Messages.format(editedClient)); Model expectedModel = new ModelManager(new AgentAssist(model.getAgentAssist()), new UserPrefs()); - expectedModel.setPerson(lastPerson, editedPerson); + expectedModel.setClient(lastClient, editedClient); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @@ -128,49 +128,49 @@ public void execute_newRemarkFieldsSpecifiedUnfilteredList_success() { @Test public void execute_filteredList_success() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + showClientAtIndex(model, INDEX_FIRST_CLIENT); - Person personInFilteredList = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - Person editedPerson = new PersonBuilder(personInFilteredList).withName(VALID_NAME_BOB).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, - new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); + Client clientInFilteredList = model.getFilteredClientList().get(INDEX_FIRST_CLIENT.getZeroBased()); + Client editedClient = new ClientBuilder(clientInFilteredList).withName(VALID_NAME_BOB).build(); + EditCommand editCommand = new EditCommand(INDEX_FIRST_CLIENT, + new EditClientDescriptorBuilder().withName(VALID_NAME_BOB).build()); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); + String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_CLIENT_SUCCESS, Messages.format(editedClient)); Model expectedModel = new ModelManager(new AgentAssist(model.getAgentAssist()), new UserPrefs()); - expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); + expectedModel.setClient(model.getFilteredClientList().get(0), editedClient); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @Test - public void execute_duplicatePersonUnfilteredList_failure() { - Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(firstPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_SECOND_PERSON, descriptor); + public void execute_duplicateClientUnfilteredList_failure() { + Client firstClient = model.getFilteredClientList().get(INDEX_FIRST_CLIENT.getZeroBased()); + EditClientDescriptor descriptor = new EditClientDescriptorBuilder(firstClient).build(); + EditCommand editCommand = new EditCommand(INDEX_SECOND_CLIENT, descriptor); - assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); + assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_CLIENT); } @Test - public void execute_duplicatePersonFilteredList_failure() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + public void execute_duplicateClientFilteredList_failure() { + showClientAtIndex(model, INDEX_FIRST_CLIENT); - // edit person in filtered list into a duplicate in address book - Person personInList = model.getAgentAssist().getPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, - new EditPersonDescriptorBuilder(personInList).build()); + // edit client in filtered list into a duplicate in address book + Client clientInList = model.getAgentAssist().getClientList().get(INDEX_SECOND_CLIENT.getZeroBased()); + EditCommand editCommand = new EditCommand(INDEX_FIRST_CLIENT, + new EditClientDescriptorBuilder(clientInList).build()); - assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); + assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_CLIENT); } @Test - public void execute_invalidPersonIndexUnfilteredList_failure() { - Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build(); + public void execute_invalidClientIndexUnfilteredList_failure() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredClientList().size() + 1); + EditClientDescriptor descriptor = new EditClientDescriptorBuilder().withName(VALID_NAME_BOB).build(); EditCommand editCommand = new EditCommand(outOfBoundIndex, descriptor); - assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX); } /** @@ -178,25 +178,25 @@ public void execute_invalidPersonIndexUnfilteredList_failure() { * but smaller than size of address book */ @Test - public void execute_invalidPersonIndexFilteredList_failure() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); - Index outOfBoundIndex = INDEX_SECOND_PERSON; + public void execute_invalidClientIndexFilteredList_failure() { + showClientAtIndex(model, INDEX_FIRST_CLIENT); + Index outOfBoundIndex = INDEX_SECOND_CLIENT; // ensures that outOfBoundIndex is still in bounds of address book list - assertTrue(outOfBoundIndex.getZeroBased() < model.getAgentAssist().getPersonList().size()); + assertTrue(outOfBoundIndex.getZeroBased() < model.getAgentAssist().getClientList().size()); EditCommand editCommand = new EditCommand(outOfBoundIndex, - new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); + new EditClientDescriptorBuilder().withName(VALID_NAME_BOB).build()); - assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX); } @Test public void equals() { - final EditCommand standardCommand = new EditCommand(INDEX_FIRST_PERSON, DESC_AMY); + final EditCommand standardCommand = new EditCommand(INDEX_FIRST_CLIENT, DESC_AMY); // same values -> returns true - EditPersonDescriptor copyDescriptor = new EditPersonDescriptor(DESC_AMY); - EditCommand commandWithSameValues = new EditCommand(INDEX_FIRST_PERSON, copyDescriptor); + EditClientDescriptor copyDescriptor = new EditClientDescriptor(DESC_AMY); + EditCommand commandWithSameValues = new EditCommand(INDEX_FIRST_CLIENT, copyDescriptor); assertTrue(standardCommand.equals(commandWithSameValues)); // same object -> returns true @@ -209,19 +209,19 @@ public void equals() { assertFalse(standardCommand.equals(new ClearCommand())); // different index -> returns false - assertFalse(standardCommand.equals(new EditCommand(INDEX_SECOND_PERSON, DESC_AMY))); + assertFalse(standardCommand.equals(new EditCommand(INDEX_SECOND_CLIENT, DESC_AMY))); // different descriptor -> returns false - assertFalse(standardCommand.equals(new EditCommand(INDEX_FIRST_PERSON, DESC_BOB))); + assertFalse(standardCommand.equals(new EditCommand(INDEX_FIRST_CLIENT, DESC_BOB))); } @Test public void toStringMethod() { Index index = Index.fromOneBased(1); - EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); - EditCommand editCommand = new EditCommand(index, editPersonDescriptor); - String expected = EditCommand.class.getCanonicalName() + "{index=" + index + ", editPersonDescriptor=" - + editPersonDescriptor + "}"; + EditClientDescriptor editClientDescriptor = new EditClientDescriptor(); + EditCommand editCommand = new EditCommand(index, editClientDescriptor); + String expected = EditCommand.class.getCanonicalName() + "{index=" + index + ", editClientDescriptor=" + + editClientDescriptor + "}"; assertEquals(expected, editCommand.toString()); } diff --git a/src/test/java/seedu/address/logic/commands/FilterCommandTest.java b/src/test/java/seedu/address/logic/commands/FilterCommandTest.java index 3241ff238cd..8abea2b9a14 100644 --- a/src/test/java/seedu/address/logic/commands/FilterCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/FilterCommandTest.java @@ -3,10 +3,10 @@ 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.Messages.MESSAGE_PERSONS_LISTED_OVERVIEW; +import static seedu.address.logic.Messages.MESSAGE_CLIENTS_LISTED_OVERVIEW; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalPersons.CARL; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalClients.CARL; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import java.util.Arrays; @@ -15,7 +15,7 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; -import seedu.address.model.person.predicates.NameContainsSubstringPredicate; +import seedu.address.model.client.predicates.NameContainsSubstringPredicate; /** * Contains integration tests (interaction with the Model) for {@code FilterCommand}. @@ -47,18 +47,18 @@ public void equals() { // null -> returns false assertFalse(findFirstCommand.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(findFirstCommand.equals(findSecondCommand)); } @Test - public void execute_substring_singlePersonFound() { - String expectedMessage = String.format(MESSAGE_PERSONS_LISTED_OVERVIEW, 1); + public void execute_substring_singleClientFound() { + String expectedMessage = String.format(MESSAGE_CLIENTS_LISTED_OVERVIEW, 1); NameContainsSubstringPredicate predicate = preparePredicate("Kurz"); FilterCommand command = new FilterCommand(predicate); - expectedModel.updateFilteredPersonList(predicate); + expectedModel.updateFilteredClientList(predicate); assertCommandSuccess(command, model, expectedMessage, expectedModel); - assertEquals(Arrays.asList(CARL), model.getFilteredPersonList()); + assertEquals(Arrays.asList(CARL), model.getFilteredClientList()); } @Test diff --git a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java b/src/test/java/seedu/address/logic/commands/HelpCommandTest.java index b9f61ff5f88..815ee6910d6 100644 --- a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/HelpCommandTest.java @@ -1,6 +1,6 @@ package seedu.address.logic.commands; -import static seedu.address.logic.commands.CommandCommons.EMPTY_PERSON; +import static seedu.address.logic.commands.CommandCommons.EMPTY_CLIENT; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.HelpCommand.SHOWING_HELP_MESSAGE; @@ -16,7 +16,7 @@ public class HelpCommandTest { @Test public void execute_help_success() { CommandResult expectedCommandResult = new CommandResult(SHOWING_HELP_MESSAGE, - true, false, false, EMPTY_PERSON, false); + true, false, false, EMPTY_CLIENT, false); assertCommandSuccess(new HelpCommand(), model, expectedCommandResult, expectedModel); } } diff --git a/src/test/java/seedu/address/logic/commands/ListCommandTest.java b/src/test/java/seedu/address/logic/commands/ListCommandTest.java index ade4b6d6479..2d7f180c225 100644 --- a/src/test/java/seedu/address/logic/commands/ListCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ListCommandTest.java @@ -1,9 +1,9 @@ package seedu.address.logic.commands; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.logic.commands.CommandTestUtil.showClientAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -33,7 +33,7 @@ public void execute_listIsNotFiltered_showsSameList() { @Test public void execute_listIsFiltered_showsEverything() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + showClientAtIndex(model, INDEX_FIRST_CLIENT); assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_SUCCESS, expectedModel); } } diff --git a/src/test/java/seedu/address/logic/commands/UndoCommandTest.java b/src/test/java/seedu/address/logic/commands/UndoCommandTest.java index 86c53dba593..1b869768eb9 100644 --- a/src/test/java/seedu/address/logic/commands/UndoCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/UndoCommandTest.java @@ -2,8 +2,8 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import org.junit.jupiter.api.Test; @@ -11,9 +11,9 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; -import seedu.address.testutil.EditPersonDescriptorBuilder; -import seedu.address.testutil.PersonBuilder; +import seedu.address.model.client.Client; +import seedu.address.testutil.EditClientDescriptorBuilder; +import seedu.address.testutil.ClientBuilder; public class UndoCommandTest { @@ -21,9 +21,9 @@ public class UndoCommandTest { @Test public void execute_undo_success() { - Person editedPerson = new PersonBuilder().build(); - EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, descriptor); + Client editedClient = new ClientBuilder().build(); + EditCommand.EditClientDescriptor descriptor = new EditClientDescriptorBuilder(editedClient).build(); + EditCommand editCommand = new EditCommand(INDEX_FIRST_CLIENT, descriptor); try { CommandResult result = editCommand.execute(model); } catch (CommandException ce) { diff --git a/src/test/java/seedu/address/logic/commands/ViewCommandTest.java b/src/test/java/seedu/address/logic/commands/ViewCommandTest.java index 3887ce2bf3c..196ba79eb59 100644 --- a/src/test/java/seedu/address/logic/commands/ViewCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ViewCommandTest.java @@ -3,10 +3,10 @@ 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.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; +import static seedu.address.logic.Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX; import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import org.junit.jupiter.api.Test; @@ -15,7 +15,7 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; class ViewCommandTest { @@ -28,37 +28,37 @@ public void constructor_nullIndex_throwsNullPointerException() { @Test public void execute_validIndexUnfilteredList_success() throws Exception { - Person personToView = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - ViewCommand viewCommand = new ViewCommand(INDEX_FIRST_PERSON); + Client clientToView = model.getFilteredClientList().get(INDEX_FIRST_CLIENT.getZeroBased()); + ViewCommand viewCommand = new ViewCommand(INDEX_FIRST_CLIENT); - String expectedMessage = String.format(ViewCommand.MESSAGE_VIEW_PERSON_SUCCESS, personToView); + String expectedMessage = String.format(ViewCommand.MESSAGE_VIEW_CLIENT_SUCCESS, clientToView); CommandResult result = viewCommand.execute(model); assertEquals(expectedMessage, result.getFeedbackToUser()); - assertTrue(result.isShowPerson()); - assertEquals(personToView, result.getViewedPerson()); + assertTrue(result.isShowClient()); + assertEquals(clientToView, result.getViewedClient()); } @Test public void execute_invalidIndexUnfilteredList_throwsCommandException() { - Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredClientList().size() + 1); ViewCommand viewCommand = new ViewCommand(outOfBoundIndex); - assertThrows(CommandException.class, MESSAGE_INVALID_PERSON_DISPLAYED_INDEX, () -> + assertThrows(CommandException.class, MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX, () -> viewCommand.execute(model)); } @Test public void equals() { - ViewCommand viewFirstCommand = new ViewCommand(INDEX_FIRST_PERSON); + ViewCommand viewFirstCommand = new ViewCommand(INDEX_FIRST_CLIENT); ViewCommand viewSecondCommand = new ViewCommand(Index.fromOneBased(2)); // same object -> returns true assertTrue(viewFirstCommand.equals(viewFirstCommand)); // same values -> returns true - ViewCommand viewFirstCommandCopy = new ViewCommand(INDEX_FIRST_PERSON); + ViewCommand viewFirstCommandCopy = new ViewCommand(INDEX_FIRST_CLIENT); assertTrue(viewFirstCommand.equals(viewFirstCommandCopy)); // different types -> returns false @@ -67,13 +67,13 @@ public void equals() { // null -> returns false assertFalse(viewFirstCommand.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(viewFirstCommand.equals(viewSecondCommand)); } @Test public void testCommandUsageMessage() { - assertEquals("view: Views the person identified by the index number used in the displayed person list.\n" + assertEquals("view: Views the client identified by the index number used in the displayed client list.\n" + "Parameters: INDEX (must be a positive integer)\n" + "Example: view 1", ViewCommand.MESSAGE_USAGE); } diff --git a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java index a12e66c22ee..27547084dbd 100644 --- a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java @@ -47,130 +47,130 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_TIER; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static seedu.address.testutil.TypicalPersons.AMY; -import static seedu.address.testutil.TypicalPersons.BOB; +import static seedu.address.testutil.TypicalClients.AMY; +import static seedu.address.testutil.TypicalClients.BOB; import org.junit.jupiter.api.Test; import seedu.address.logic.Messages; import seedu.address.logic.commands.AddCommand; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Income; -import seedu.address.model.person.Job; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; +import seedu.address.model.client.Address; +import seedu.address.model.client.Client; +import seedu.address.model.client.Email; +import seedu.address.model.client.Income; +import seedu.address.model.client.Job; +import seedu.address.model.client.Name; +import seedu.address.model.client.Phone; import seedu.address.model.status.Status; import seedu.address.model.tier.Tier; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; public class AddCommandParserTest { private AddCommandParser parser = new AddCommandParser(); @Test public void parse_allFieldsPresent_success() { - Person expectedPerson = new PersonBuilder(BOB).withTier(VALID_TIER_GOLD).build(); + Client expectedClient = new ClientBuilder(BOB).withTier(VALID_TIER_GOLD).build(); // whitespace only preamble assertParseSuccess(parser, PREAMBLE_WHITESPACE + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB + JOB_DESC_BOB + INCOME_DESC_BOB + TIER_DESC_GOLD + NEW_REMARK_DESC_BOB, - new AddCommand(expectedPerson)); + new AddCommand(expectedClient)); } @Test public void parse_repeatedNonTierValue_failure() { - String validExpectedPersonString = NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + String validExpectedClientString = NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB + JOB_DESC_BOB + INCOME_DESC_BOB + TIER_DESC_GOLD + NEW_REMARK_DESC_BOB + STATUS_DESC_BOB; // multiple names - assertParseFailure(parser, NAME_DESC_AMY + validExpectedPersonString, + assertParseFailure(parser, NAME_DESC_AMY + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_NAME)); // multiple phones - assertParseFailure(parser, PHONE_DESC_AMY + validExpectedPersonString, + assertParseFailure(parser, PHONE_DESC_AMY + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE)); // multiple emails - assertParseFailure(parser, EMAIL_DESC_AMY + validExpectedPersonString, + assertParseFailure(parser, EMAIL_DESC_AMY + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_EMAIL)); // multiple addresses - assertParseFailure(parser, ADDRESS_DESC_AMY + validExpectedPersonString, + assertParseFailure(parser, ADDRESS_DESC_AMY + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_ADDRESS)); // multiple addresses - assertParseFailure(parser, ADDRESS_DESC_AMY + validExpectedPersonString, + assertParseFailure(parser, ADDRESS_DESC_AMY + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_ADDRESS)); // multiple jobs - assertParseFailure(parser, JOB_DESC_AMY + validExpectedPersonString, + assertParseFailure(parser, JOB_DESC_AMY + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_JOB)); // multiple incomes - assertParseFailure(parser, INCOME_DESC_AMY + validExpectedPersonString, + assertParseFailure(parser, INCOME_DESC_AMY + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_INCOME)); // multiple tiers - assertParseFailure(parser, TIER_DESC_REJECT + validExpectedPersonString, + assertParseFailure(parser, TIER_DESC_REJECT + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_TIER)); // multiple remarks - assertParseFailure(parser, NEW_REMARK_DESC_BOB + validExpectedPersonString, + assertParseFailure(parser, NEW_REMARK_DESC_BOB + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_NEW_REMARK)); // multiple status - assertParseFailure(parser, STATUS_DESC_BOB + validExpectedPersonString, + assertParseFailure(parser, STATUS_DESC_BOB + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_STATUS)); // multiple fields repeated assertParseFailure(parser, - validExpectedPersonString + validExpectedPersonString + VALID_STATUS_NONE, + validExpectedClientString + validExpectedClientString + VALID_STATUS_NONE, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_JOB, PREFIX_INCOME, PREFIX_TIER, PREFIX_NEW_REMARK, PREFIX_STATUS)); // invalid name - assertParseFailure(parser, INVALID_NAME_DESC + validExpectedPersonString, + assertParseFailure(parser, INVALID_NAME_DESC + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_NAME)); // invalid email - assertParseFailure(parser, INVALID_EMAIL_DESC + validExpectedPersonString, + assertParseFailure(parser, INVALID_EMAIL_DESC + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_EMAIL)); // invalid phone - assertParseFailure(parser, INVALID_PHONE_DESC + validExpectedPersonString, + assertParseFailure(parser, INVALID_PHONE_DESC + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE)); // invalid address - assertParseFailure(parser, INVALID_ADDRESS_DESC + validExpectedPersonString, + assertParseFailure(parser, INVALID_ADDRESS_DESC + validExpectedClientString, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_ADDRESS)); // valid value followed by invalid value // invalid name - assertParseFailure(parser, validExpectedPersonString + INVALID_NAME_DESC, + assertParseFailure(parser, validExpectedClientString + INVALID_NAME_DESC, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_NAME)); // invalid email - assertParseFailure(parser, validExpectedPersonString + INVALID_EMAIL_DESC, + assertParseFailure(parser, validExpectedClientString + INVALID_EMAIL_DESC, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_EMAIL)); // invalid phone - assertParseFailure(parser, validExpectedPersonString + INVALID_PHONE_DESC, + assertParseFailure(parser, validExpectedClientString + INVALID_PHONE_DESC, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE)); // invalid address - assertParseFailure(parser, validExpectedPersonString + INVALID_ADDRESS_DESC, + assertParseFailure(parser, validExpectedClientString + INVALID_ADDRESS_DESC, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_ADDRESS)); } @Test public void parse_optionalFieldsMissing_success() { // no tier - Person expectedPerson = new PersonBuilder(AMY).build(); + Client expectedClient = new ClientBuilder(AMY).build(); assertParseSuccess(parser, NAME_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY + ADDRESS_DESC_AMY + JOB_DESC_AMY + INCOME_DESC_AMY, - new AddCommand(expectedPerson)); + new AddCommand(expectedClient)); } @Test diff --git a/src/test/java/seedu/address/logic/parser/AgentAssistParserTest.java b/src/test/java/seedu/address/logic/parser/AgentAssistParserTest.java index 3b4bed63d8f..fd26b7d35a4 100644 --- a/src/test/java/seedu/address/logic/parser/AgentAssistParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AgentAssistParserTest.java @@ -5,7 +5,7 @@ import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.Messages.MESSAGE_UNKNOWN_COMMAND; import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import java.util.ArrayList; import java.util.List; @@ -17,18 +17,18 @@ import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.DeleteCommand; import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; +import seedu.address.logic.commands.EditCommand.EditClientDescriptor; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FilterCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListCommand; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Person; -import seedu.address.model.person.predicates.CombinedPredicate; -import seedu.address.model.person.predicates.NameContainsSubstringPredicate; -import seedu.address.testutil.EditPersonDescriptorBuilder; -import seedu.address.testutil.PersonBuilder; -import seedu.address.testutil.PersonUtil; +import seedu.address.model.client.Client; +import seedu.address.model.client.predicates.CombinedPredicate; +import seedu.address.model.client.predicates.NameContainsSubstringPredicate; +import seedu.address.testutil.EditClientDescriptorBuilder; +import seedu.address.testutil.ClientBuilder; +import seedu.address.testutil.ClientUtil; public class AgentAssistParserTest { @@ -37,9 +37,9 @@ public class AgentAssistParserTest { @Test public void parseCommand_add() throws Exception { - Person person = new PersonBuilder().build(); - AddCommand command = (AddCommand) parser.parseCommand(PersonUtil.getAddCommand(person)); - assertEquals(new AddCommand(person), command); + Client client = new ClientBuilder().build(); + AddCommand command = (AddCommand) parser.parseCommand(ClientUtil.getAddCommand(client)); + assertEquals(new AddCommand(client), command); } @Test @@ -51,17 +51,17 @@ public void parseCommand_clear() throws Exception { @Test public void parseCommand_delete() throws Exception { DeleteCommand command = (DeleteCommand) parser.parseCommand( - DeleteCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased()); - assertEquals(new DeleteCommand(INDEX_FIRST_PERSON), command); + DeleteCommand.COMMAND_WORD + " " + INDEX_FIRST_CLIENT.getOneBased()); + assertEquals(new DeleteCommand(INDEX_FIRST_CLIENT), command); } @Test public void parseCommand_edit() throws Exception { - Person person = new PersonBuilder().build(); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(person).build(); + Client client = new ClientBuilder().build(); + EditClientDescriptor descriptor = new EditClientDescriptorBuilder(client).build(); EditCommand command = (EditCommand) parser.parseCommand(EditCommand.COMMAND_WORD + " " - + INDEX_FIRST_PERSON.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); - assertEquals(new EditCommand(INDEX_FIRST_PERSON, descriptor), command); + + INDEX_FIRST_CLIENT.getOneBased() + " " + ClientUtil.getEditClientDescriptorDetails(descriptor)); + assertEquals(new EditCommand(INDEX_FIRST_CLIENT, descriptor), command); } @Test @@ -75,7 +75,7 @@ public void parseCommand_filter() throws Exception { String substring = "foo"; // Build expected command - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new NameContainsSubstringPredicate(substring)); CombinedPredicate combinedPredicate = new CombinedPredicate(expectedPredicates); FilterCommand expectedCommand = new FilterCommand(combinedPredicate); diff --git a/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java index 6a40e14a649..8497128f51a 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java @@ -3,7 +3,7 @@ import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; 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 static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import org.junit.jupiter.api.Test; @@ -22,7 +22,7 @@ public class DeleteCommandParserTest { @Test public void parse_validArgs_returnsDeleteCommand() { - assertParseSuccess(parser, "1", new DeleteCommand(INDEX_FIRST_PERSON)); + assertParseSuccess(parser, "1", new DeleteCommand(INDEX_FIRST_CLIENT)); } @Test diff --git a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java b/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java index e533e704ff3..f9b47bb178e 100644 --- a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java @@ -41,25 +41,25 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_TIER; 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 static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_THIRD_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_CLIENT; +import static seedu.address.testutil.TypicalIndexes.INDEX_THIRD_CLIENT; import org.junit.jupiter.api.Test; import seedu.address.commons.core.index.Index; import seedu.address.logic.Messages; import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Income; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; -import seedu.address.model.person.Remark; +import seedu.address.logic.commands.EditCommand.EditClientDescriptor; +import seedu.address.model.client.Address; +import seedu.address.model.client.Email; +import seedu.address.model.client.Income; +import seedu.address.model.client.Name; +import seedu.address.model.client.Phone; +import seedu.address.model.client.Remark; import seedu.address.model.status.Status; import seedu.address.model.tier.Tier; -import seedu.address.testutil.EditPersonDescriptorBuilder; +import seedu.address.testutil.EditClientDescriptorBuilder; public class EditCommandParserTest { @@ -131,11 +131,11 @@ public void parse_invalidValue_failure() { @Test public void parse_allFieldsSpecified_success() { - Index targetIndex = INDEX_SECOND_PERSON; + Index targetIndex = INDEX_SECOND_CLIENT; String userInput = targetIndex.getOneBased() + PHONE_DESC_BOB + TIER_DESC_REJECT + EMAIL_DESC_AMY + ADDRESS_DESC_AMY + NAME_DESC_AMY; - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY) + EditClientDescriptor descriptor = new EditClientDescriptorBuilder().withName(VALID_NAME_AMY) .withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY) .withTier(VALID_TIER_REJECT).build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); @@ -145,10 +145,10 @@ public void parse_allFieldsSpecified_success() { @Test public void parse_someFieldsSpecified_success() { - Index targetIndex = INDEX_FIRST_PERSON; + Index targetIndex = INDEX_FIRST_CLIENT; String userInput = targetIndex.getOneBased() + PHONE_DESC_BOB + EMAIL_DESC_AMY; - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB) + EditClientDescriptor descriptor = new EditClientDescriptorBuilder().withPhone(VALID_PHONE_BOB) .withEmail(VALID_EMAIL_AMY).build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); @@ -158,63 +158,63 @@ public void parse_someFieldsSpecified_success() { @Test public void parse_oneFieldSpecified_success() { // name - Index targetIndex = INDEX_THIRD_PERSON; + Index targetIndex = INDEX_THIRD_CLIENT; String userInput = targetIndex.getOneBased() + NAME_DESC_AMY; - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY).build(); + EditClientDescriptor descriptor = new EditClientDescriptorBuilder().withName(VALID_NAME_AMY).build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // phone userInput = targetIndex.getOneBased() + PHONE_DESC_AMY; - descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_AMY).build(); + descriptor = new EditClientDescriptorBuilder().withPhone(VALID_PHONE_AMY).build(); expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // email userInput = targetIndex.getOneBased() + EMAIL_DESC_AMY; - descriptor = new EditPersonDescriptorBuilder().withEmail(VALID_EMAIL_AMY).build(); + descriptor = new EditClientDescriptorBuilder().withEmail(VALID_EMAIL_AMY).build(); expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // address userInput = targetIndex.getOneBased() + ADDRESS_DESC_AMY; - descriptor = new EditPersonDescriptorBuilder().withAddress(VALID_ADDRESS_AMY).build(); + descriptor = new EditClientDescriptorBuilder().withAddress(VALID_ADDRESS_AMY).build(); expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // income userInput = targetIndex.getOneBased() + INCOME_DESC_AMY; - descriptor = new EditPersonDescriptorBuilder().withIncome(Integer.parseInt(VALID_INCOME_AMY)).build(); + descriptor = new EditClientDescriptorBuilder().withIncome(Integer.parseInt(VALID_INCOME_AMY)).build(); expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // income but 0 dollars userInput = targetIndex.getOneBased() + INCOME_DESC_BOB; - descriptor = new EditPersonDescriptorBuilder().withIncome(Integer.parseInt(VALID_INCOME_BOB)).build(); + descriptor = new EditClientDescriptorBuilder().withIncome(Integer.parseInt(VALID_INCOME_BOB)).build(); expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // tier userInput = targetIndex.getOneBased() + TIER_DESC_GOLD; - descriptor = new EditPersonDescriptorBuilder().withTier(VALID_TIER_GOLD).build(); + descriptor = new EditClientDescriptorBuilder().withTier(VALID_TIER_GOLD).build(); expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // new remark userInput = targetIndex.getOneBased() + NEW_REMARK_DESC_BOB; - descriptor = new EditPersonDescriptorBuilder().withNewRemark(VALID_REMARK_BOB).build(); + descriptor = new EditClientDescriptorBuilder().withNewRemark(VALID_REMARK_BOB).build(); expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // remark append userInput = targetIndex.getOneBased() + APPEND_REMARK_DESC_BOB; - descriptor = new EditPersonDescriptorBuilder().withAppendedRemark(VALID_REMARK_BOB).build(); + descriptor = new EditClientDescriptorBuilder().withAppendedRemark(VALID_REMARK_BOB).build(); expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // status userInput = targetIndex.getOneBased() + STATUS_DESC_BOB; - descriptor = new EditPersonDescriptorBuilder().withStatus(VALID_STATUS_NON_URGENT).build(); + descriptor = new EditClientDescriptorBuilder().withStatus(VALID_STATUS_NON_URGENT).build(); expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); @@ -226,7 +226,7 @@ public void parse_multipleRepeatedFields_failure() { // AddCommandParserTest#parse_repeatedNonTierValue_failure() // valid followed by invalid - Index targetIndex = INDEX_FIRST_PERSON; + Index targetIndex = INDEX_FIRST_CLIENT; String userInput = targetIndex.getOneBased() + INVALID_PHONE_DESC + PHONE_DESC_BOB; assertParseFailure(parser, userInput, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE)); @@ -254,10 +254,10 @@ public void parse_multipleRepeatedFields_failure() { @Test public void parse_resetTier_success() { - Index targetIndex = INDEX_THIRD_PERSON; + Index targetIndex = INDEX_THIRD_CLIENT; String userInput = targetIndex.getOneBased() + TIER_EMPTY; - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withTier("").build(); + EditClientDescriptor descriptor = new EditClientDescriptorBuilder().withTier("").build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); @@ -265,7 +265,7 @@ public void parse_resetTier_success() { @Test public void parse_remarkNewRemarkAppend_failure() { - Index targetIndex = INDEX_FIRST_PERSON; + Index targetIndex = INDEX_FIRST_CLIENT; String userInput = targetIndex.getOneBased() + APPEND_REMARK_DESC_BOB + NEW_REMARK_DESC_BOB; assertParseFailure(parser, userInput, String.format(MESSAGE_INVALID_COMMAND_FORMAT, diff --git a/src/test/java/seedu/address/logic/parser/FilterCommandParserTest.java b/src/test/java/seedu/address/logic/parser/FilterCommandParserTest.java index 1f7d7608a1c..c34bd798e23 100644 --- a/src/test/java/seedu/address/logic/parser/FilterCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/FilterCommandParserTest.java @@ -11,16 +11,16 @@ import org.junit.jupiter.api.Test; import seedu.address.logic.commands.FilterCommand; -import seedu.address.model.person.Person; -import seedu.address.model.person.predicates.AddressContainsSubstringPredicate; -import seedu.address.model.person.predicates.CombinedPredicate; -import seedu.address.model.person.predicates.EmailContainsSubstringPredicate; -import seedu.address.model.person.predicates.IncomeComparisonPredicate; -import seedu.address.model.person.predicates.JobContainsSubstringPredicate; -import seedu.address.model.person.predicates.NameContainsSubstringPredicate; -import seedu.address.model.person.predicates.PhoneContainsSubstringPredicate; -import seedu.address.model.person.predicates.RemarkContainsSubstringPredicate; -import seedu.address.model.person.predicates.TierStartsWithSubstringPredicate; +import seedu.address.model.client.Client; +import seedu.address.model.client.predicates.AddressContainsSubstringPredicate; +import seedu.address.model.client.predicates.CombinedPredicate; +import seedu.address.model.client.predicates.EmailContainsSubstringPredicate; +import seedu.address.model.client.predicates.IncomeComparisonPredicate; +import seedu.address.model.client.predicates.JobContainsSubstringPredicate; +import seedu.address.model.client.predicates.NameContainsSubstringPredicate; +import seedu.address.model.client.predicates.PhoneContainsSubstringPredicate; +import seedu.address.model.client.predicates.RemarkContainsSubstringPredicate; +import seedu.address.model.client.predicates.TierStartsWithSubstringPredicate; import seedu.address.model.util.IncomeComparisonOperator; public class FilterCommandParserTest { @@ -35,7 +35,7 @@ public void parse_emptyArg_throwsParseException() { @Test public void parse_validArgs_returnsFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new NameContainsSubstringPredicate("Alice")); FilterCommand expectedFilterCommand = new FilterCommand(new CombinedPredicate(expectedPredicates)); @@ -44,7 +44,7 @@ public void parse_validArgs_returnsFilterCommand() { @Test public void parse_addressFlag_returnsAddressFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new AddressContainsSubstringPredicate("Block 123")); FilterCommand expectedFilterCommand = new FilterCommand(new CombinedPredicate(expectedPredicates)); @@ -53,7 +53,7 @@ public void parse_addressFlag_returnsAddressFilterCommand() { @Test public void parse_emailFlag_returnsEmailFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new EmailContainsSubstringPredicate("alice@hello.com")); FilterCommand expectedFilterCommand = new FilterCommand(new CombinedPredicate(expectedPredicates)); @@ -62,7 +62,7 @@ public void parse_emailFlag_returnsEmailFilterCommand() { @Test public void parse_incomeFlag_returnsIncomeFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new EmailContainsSubstringPredicate("alice@hello.com")); FilterCommand expectedFilterCommand = new FilterCommand(new CombinedPredicate(expectedPredicates)); @@ -71,7 +71,7 @@ public void parse_incomeFlag_returnsIncomeFilterCommand() { @Test public void parse_jobFlag_returnsRemarkFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); IncomeComparisonOperator operator = new IncomeComparisonOperator(">"); expectedPredicates.add(new IncomeComparisonPredicate(operator, 5000)); @@ -82,7 +82,7 @@ public void parse_jobFlag_returnsRemarkFilterCommand() { @Test public void parse_nameFlag_returnsNameFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new NameContainsSubstringPredicate("Alice")); FilterCommand expectedFilterCommand = new FilterCommand(new CombinedPredicate(expectedPredicates)); @@ -91,7 +91,7 @@ public void parse_nameFlag_returnsNameFilterCommand() { @Test public void parse_phoneFlag_returnsPhoneFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new PhoneContainsSubstringPredicate("91112222")); FilterCommand expectedFilterCommand = new FilterCommand(new CombinedPredicate(expectedPredicates)); @@ -101,7 +101,7 @@ public void parse_phoneFlag_returnsPhoneFilterCommand() { @Test public void parse_remarkFlag_returnsRemarkFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new RemarkContainsSubstringPredicate("is a celebrity")); FilterCommand expectedFilterCommand = new FilterCommand(new CombinedPredicate(expectedPredicates)); @@ -110,7 +110,7 @@ public void parse_remarkFlag_returnsRemarkFilterCommand() { @Test public void parse_tierFlag_returnsRemarkFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new TierStartsWithSubstringPredicate("gOLD")); FilterCommand expectedFilterCommand = new FilterCommand(new CombinedPredicate(expectedPredicates)); @@ -119,7 +119,7 @@ public void parse_tierFlag_returnsRemarkFilterCommand() { @Test public void parse_validMultipleArgs_returnsFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new NameContainsSubstringPredicate("Alice")); expectedPredicates.add(new PhoneContainsSubstringPredicate("91112222")); expectedPredicates.add(new EmailContainsSubstringPredicate("alice@example.com")); @@ -138,7 +138,7 @@ public void parse_validMultipleArgs_returnsFilterCommand() { @Test public void parse_validMultipleArgsWithWhitespace_returnsFilterCommand() { - List> expectedPredicates = new ArrayList<>(); + List> expectedPredicates = new ArrayList<>(); expectedPredicates.add(new NameContainsSubstringPredicate("Alice")); expectedPredicates.add(new PhoneContainsSubstringPredicate("91112222")); diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index dabcd850f92..636f5acde13 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -3,16 +3,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals; 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_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import org.junit.jupiter.api.Test; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Income; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; +import seedu.address.model.client.Address; +import seedu.address.model.client.Email; +import seedu.address.model.client.Income; +import seedu.address.model.client.Name; +import seedu.address.model.client.Phone; import seedu.address.model.tier.Tier; import seedu.address.model.util.IncomeComparisonOperator; @@ -53,10 +53,10 @@ public void parseIndex_outOfRangeInput_throwsParseException() { @Test public void parseIndex_validInput_success() throws Exception { // No whitespaces - assertEquals(INDEX_FIRST_PERSON, ParserUtil.parseIndex("1")); + assertEquals(INDEX_FIRST_CLIENT, ParserUtil.parseIndex("1")); // Leading and trailing whitespaces - assertEquals(INDEX_FIRST_PERSON, ParserUtil.parseIndex(" 1 ")); + assertEquals(INDEX_FIRST_CLIENT, ParserUtil.parseIndex(" 1 ")); } @Test diff --git a/src/test/java/seedu/address/logic/parser/ViewCommandParserTest.java b/src/test/java/seedu/address/logic/parser/ViewCommandParserTest.java index 4a73641e031..1a1e346824c 100644 --- a/src/test/java/seedu/address/logic/parser/ViewCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/ViewCommandParserTest.java @@ -3,7 +3,7 @@ import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; 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 static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import org.junit.jupiter.api.Test; @@ -15,7 +15,7 @@ public class ViewCommandParserTest { @Test public void parse_validArgs_returnsViewCommand() { - assertParseSuccess(parser, "1", new ViewCommand(INDEX_FIRST_PERSON)); + assertParseSuccess(parser, "1", new ViewCommand(INDEX_FIRST_CLIENT)); } @Test diff --git a/src/test/java/seedu/address/model/AgentAssistTest.java b/src/test/java/seedu/address/model/AgentAssistTest.java index b0ad5ecc72b..4881d685f96 100644 --- a/src/test/java/seedu/address/model/AgentAssistTest.java +++ b/src/test/java/seedu/address/model/AgentAssistTest.java @@ -6,8 +6,8 @@ import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; import static seedu.address.logic.commands.CommandTestUtil.VALID_TIER_REJECT; import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalClients.ALICE; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import java.util.Arrays; import java.util.Collection; @@ -18,9 +18,9 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import seedu.address.model.person.Person; -import seedu.address.model.person.exceptions.DuplicatePersonException; -import seedu.address.testutil.PersonBuilder; +import seedu.address.model.client.Client; +import seedu.address.model.client.exceptions.DuplicateClientException; +import seedu.address.testutil.ClientBuilder; public class AgentAssistTest { @@ -28,7 +28,7 @@ public class AgentAssistTest { @Test public void constructor() { - assertEquals(Collections.emptyList(), agentAssist.getPersonList()); + assertEquals(Collections.emptyList(), agentAssist.getClientList()); } @Test @@ -44,64 +44,64 @@ public void resetData_withValidReadOnlyAgentAssist_replacesData() { } @Test - public void resetData_withDuplicatePersons_throwsDuplicatePersonException() { - // Two persons with the same identity fields - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTier(VALID_TIER_REJECT) + public void resetData_withDuplicateClients_throwsDuplicateClientException() { + // Two clients with the same identity fields + Client editedAlice = new ClientBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTier(VALID_TIER_REJECT) .build(); - List newPersons = Arrays.asList(ALICE, editedAlice); - AgentAssistStub newData = new AgentAssistStub(newPersons); + List newClients = Arrays.asList(ALICE, editedAlice); + AgentAssistStub newData = new AgentAssistStub(newClients); - assertThrows(DuplicatePersonException.class, () -> agentAssist.resetData(newData)); + assertThrows(DuplicateClientException.class, () -> agentAssist.resetData(newData)); } @Test - public void hasPerson_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> agentAssist.hasPerson(null)); + public void hasClient_nullClient_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> agentAssist.hasClient(null)); } @Test - public void hasPerson_personNotInAgentAssist_returnsFalse() { - assertFalse(agentAssist.hasPerson(ALICE)); + public void hasClient_clientNotInAgentAssist_returnsFalse() { + assertFalse(agentAssist.hasClient(ALICE)); } @Test - public void hasPerson_personInAgentAssist_returnsTrue() { - agentAssist.addPerson(ALICE); - assertTrue(agentAssist.hasPerson(ALICE)); + public void hasClient_clientInAgentAssist_returnsTrue() { + agentAssist.addClient(ALICE); + assertTrue(agentAssist.hasClient(ALICE)); } @Test - public void hasPerson_personWithSameIdentityFieldsInAgentAssist_returnsTrue() { - agentAssist.addPerson(ALICE); - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTier(VALID_TIER_REJECT) + public void hasClient_clientWithSameIdentityFieldsInAgentAssist_returnsTrue() { + agentAssist.addClient(ALICE); + Client editedAlice = new ClientBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTier(VALID_TIER_REJECT) .build(); - assertTrue(agentAssist.hasPerson(editedAlice)); + assertTrue(agentAssist.hasClient(editedAlice)); } @Test - public void getPersonList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () -> agentAssist.getPersonList().remove(0)); + public void getClientList_modifyList_throwsUnsupportedOperationException() { + assertThrows(UnsupportedOperationException.class, () -> agentAssist.getClientList().remove(0)); } @Test public void toStringMethod() { - String expected = AgentAssist.class.getCanonicalName() + "{persons=" + agentAssist.getPersonList() + "}"; + String expected = AgentAssist.class.getCanonicalName() + "{clients=" + agentAssist.getClientList() + "}"; assertEquals(expected, agentAssist.toString()); } /** - * A stub ReadOnlyAgentAssist whose persons list can violate interface constraints. + * A stub ReadOnlyAgentAssist whose clients list can violate interface constraints. */ private static class AgentAssistStub implements ReadOnlyAgentAssist { - private final ObservableList persons = FXCollections.observableArrayList(); + private final ObservableList clients = FXCollections.observableArrayList(); - AgentAssistStub(Collection persons) { - this.persons.setAll(persons); + AgentAssistStub(Collection clients) { + this.clients.setAll(clients); } @Override - public ObservableList getPersonList() { - return persons; + public ObservableList getClientList() { + return clients; } } diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/seedu/address/model/ModelManagerTest.java index 1d674dd6194..96c88d25307 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/seedu/address/model/ModelManagerTest.java @@ -3,10 +3,10 @@ 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.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_CLIENTS; import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.BENSON; +import static seedu.address.testutil.TypicalClients.ALICE; +import static seedu.address.testutil.TypicalClients.BENSON; import java.nio.file.Path; import java.nio.file.Paths; @@ -14,7 +14,7 @@ import org.junit.jupiter.api.Test; import seedu.address.commons.core.GuiSettings; -import seedu.address.model.person.predicates.NameContainsSubstringPredicate; +import seedu.address.model.client.predicates.NameContainsSubstringPredicate; import seedu.address.testutil.AgentAssistBuilder; public class ModelManagerTest { @@ -72,29 +72,29 @@ public void setAgentAssistFilePath_validPath_setsAgentAssistFilePath() { } @Test - public void hasPerson_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> modelManager.hasPerson(null)); + public void hasClient_nullClient_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> modelManager.hasClient(null)); } @Test - public void hasPerson_personNotInAgentAssist_returnsFalse() { - assertFalse(modelManager.hasPerson(ALICE)); + public void hasClient_clientNotInAgentAssist_returnsFalse() { + assertFalse(modelManager.hasClient(ALICE)); } @Test - public void hasPerson_personInAgentAssist_returnsTrue() { - modelManager.addPerson(ALICE); - assertTrue(modelManager.hasPerson(ALICE)); + public void hasClient_clientInAgentAssist_returnsTrue() { + modelManager.addClient(ALICE); + assertTrue(modelManager.hasClient(ALICE)); } @Test - public void getFilteredPersonList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () -> modelManager.getFilteredPersonList().remove(0)); + public void getFilteredClientList_modifyList_throwsUnsupportedOperationException() { + assertThrows(UnsupportedOperationException.class, () -> modelManager.getFilteredClientList().remove(0)); } @Test public void equals() { - AgentAssist agentAssist = new AgentAssistBuilder().withPerson(ALICE).withPerson(BENSON).build(); + AgentAssist agentAssist = new AgentAssistBuilder().withClient(ALICE).withClient(BENSON).build(); AgentAssist differentAgentAssist = new AgentAssist(); UserPrefs userPrefs = new UserPrefs(); @@ -117,11 +117,11 @@ public void equals() { // different filteredList -> returns false String substring = ALICE.getName().fullName; - modelManager.updateFilteredPersonList(new NameContainsSubstringPredicate(substring)); + modelManager.updateFilteredClientList(new NameContainsSubstringPredicate(substring)); assertFalse(modelManager.equals(new ModelManager(agentAssist, userPrefs))); // resets modelManager to initial state for upcoming tests - modelManager.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + modelManager.updateFilteredClientList(PREDICATE_SHOW_ALL_CLIENTS); // different userPrefs -> returns false UserPrefs differentUserPrefs = new UserPrefs(); diff --git a/src/test/java/seedu/address/model/person/AddressTest.java b/src/test/java/seedu/address/model/client/AddressTest.java similarity index 98% rename from src/test/java/seedu/address/model/person/AddressTest.java rename to src/test/java/seedu/address/model/client/AddressTest.java index 314885eca26..eaafabb803c 100644 --- a/src/test/java/seedu/address/model/person/AddressTest.java +++ b/src/test/java/seedu/address/model/client/AddressTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/seedu/address/model/person/PersonTest.java b/src/test/java/seedu/address/model/client/ClientTest.java similarity index 66% rename from src/test/java/seedu/address/model/person/PersonTest.java rename to src/test/java/seedu/address/model/client/ClientTest.java index 5e131c7cc67..bc8eb08ac25 100644 --- a/src/test/java/seedu/address/model/person/PersonTest.java +++ b/src/test/java/seedu/address/model/client/ClientTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -10,48 +10,48 @@ import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; import static seedu.address.logic.commands.CommandTestUtil.VALID_TIER_REJECT; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.BOB; +import static seedu.address.testutil.TypicalClients.ALICE; +import static seedu.address.testutil.TypicalClients.BOB; import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; -public class PersonTest { +public class ClientTest { // @Test // public void asObservableList_modifyList_throwsUnsupportedOperationException() { - // Person person = new PersonBuilder().build(); - // assertThrows(UnsupportedOperationException.class, () -> person.getTags().remove(0)); + // Client client = new ClientBuilder().build(); + // assertThrows(UnsupportedOperationException.class, () -> client.getTags().remove(0)); // } @Test - public void isSamePerson() { + public void isSameClient() { // same object -> returns true - assertTrue(ALICE.isSamePerson(ALICE)); + assertTrue(ALICE.isSameClient(ALICE)); // null -> returns false - assertFalse(ALICE.isSamePerson(null)); + assertFalse(ALICE.isSameClient(null)); // same name, all other attributes different -> returns false - Person editedAlice = new PersonBuilder(ALICE).withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB) + Client editedAlice = new ClientBuilder(ALICE).withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB) .withAddress(VALID_ADDRESS_BOB).withTier(VALID_TIER_REJECT).build(); - assertFalse(ALICE.isSamePerson(editedAlice)); + assertFalse(ALICE.isSameClient(editedAlice)); // different name, all other attributes same -> returns false - editedAlice = new PersonBuilder(ALICE).withName(VALID_NAME_BOB).build(); - assertFalse(ALICE.isSamePerson(editedAlice)); + editedAlice = new ClientBuilder(ALICE).withName(VALID_NAME_BOB).build(); + assertFalse(ALICE.isSameClient(editedAlice)); // name has trailing spaces, all other attributes same -> returns false String nameWithTrailingSpaces = VALID_NAME_BOB + " "; - Person editedBob = new PersonBuilder(BOB).withName(nameWithTrailingSpaces).build(); - assertFalse(BOB.isSamePerson(editedBob)); + Client editedBob = new ClientBuilder(BOB).withName(nameWithTrailingSpaces).build(); + assertFalse(BOB.isSameClient(editedBob)); } @Test public void equals() { // same values -> returns true - Person aliceCopy = new PersonBuilder(ALICE).build(); + Client aliceCopy = new ClientBuilder(ALICE).build(); assertEquals(ALICE, aliceCopy); // same object -> returns true @@ -63,45 +63,45 @@ public void equals() { // different type -> returns false assertNotEquals(5, ALICE); - // different person -> returns false + // different client -> returns false assertNotEquals(ALICE, BOB); // different name -> returns false - Person editedAlice = new PersonBuilder(ALICE).withName(VALID_NAME_BOB).build(); + Client editedAlice = new ClientBuilder(ALICE).withName(VALID_NAME_BOB).build(); assertNotEquals(ALICE, editedAlice); // different phone -> returns false - editedAlice = new PersonBuilder(ALICE).withPhone(VALID_PHONE_BOB).build(); + editedAlice = new ClientBuilder(ALICE).withPhone(VALID_PHONE_BOB).build(); assertNotEquals(ALICE, editedAlice); // different email -> returns false - editedAlice = new PersonBuilder(ALICE).withEmail(VALID_EMAIL_BOB).build(); + editedAlice = new ClientBuilder(ALICE).withEmail(VALID_EMAIL_BOB).build(); assertNotEquals(ALICE, editedAlice); // different address -> returns true - editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).build(); + editedAlice = new ClientBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).build(); assertEquals(ALICE, editedAlice); // different job -> returns true - editedAlice = new PersonBuilder(ALICE).withJob(VALID_JOB_BOB).build(); + editedAlice = new ClientBuilder(ALICE).withJob(VALID_JOB_BOB).build(); assertTrue(ALICE.equals(editedAlice)); // different tier -> returns true - editedAlice = new PersonBuilder(ALICE).withTier("Silver").build(); + editedAlice = new ClientBuilder(ALICE).withTier("Silver").build(); assertTrue(ALICE.equals(editedAlice)); // different income -> returns true - editedAlice = new PersonBuilder(ALICE).withIncome(0).build(); + editedAlice = new ClientBuilder(ALICE).withIncome(0).build(); assertTrue(ALICE.equals(editedAlice)); // different remark -> returns true - editedAlice = new PersonBuilder(ALICE).withRemark("Different Remark").build(); + editedAlice = new ClientBuilder(ALICE).withRemark("Different Remark").build(); assertTrue(ALICE.equals(editedAlice)); } @Test public void toStringMethod() { - String expected = Person.class.getCanonicalName() + "{name=" + ALICE.getName() + ", phone=" + ALICE.getPhone() + String expected = Client.class.getCanonicalName() + "{name=" + ALICE.getName() + ", phone=" + ALICE.getPhone() + ", email=" + ALICE.getEmail() + ", address=" + ALICE.getAddress() + ", job=" + ALICE.getJob() + ", income=" + ALICE.getIncome() + ", tier=" + ALICE.getTier() + ", remark=" + ALICE.getRemark() + ", status=" + ALICE.getStatus() + "}"; diff --git a/src/test/java/seedu/address/model/person/EmailTest.java b/src/test/java/seedu/address/model/client/EmailTest.java similarity index 99% rename from src/test/java/seedu/address/model/person/EmailTest.java rename to src/test/java/seedu/address/model/client/EmailTest.java index f08cdff0a64..900cc6d3f8b 100644 --- a/src/test/java/seedu/address/model/person/EmailTest.java +++ b/src/test/java/seedu/address/model/client/EmailTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/seedu/address/model/person/NameTest.java b/src/test/java/seedu/address/model/client/NameTest.java similarity index 98% rename from src/test/java/seedu/address/model/person/NameTest.java rename to src/test/java/seedu/address/model/client/NameTest.java index 74a804d074c..ac16a9f6fe4 100644 --- a/src/test/java/seedu/address/model/person/NameTest.java +++ b/src/test/java/seedu/address/model/client/NameTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/seedu/address/model/person/PhoneTest.java b/src/test/java/seedu/address/model/client/PhoneTest.java similarity index 98% rename from src/test/java/seedu/address/model/person/PhoneTest.java rename to src/test/java/seedu/address/model/client/PhoneTest.java index f43c028dfc5..db83904d890 100644 --- a/src/test/java/seedu/address/model/person/PhoneTest.java +++ b/src/test/java/seedu/address/model/client/PhoneTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person; +package seedu.address.model.client; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/seedu/address/model/client/UniqueClientListTest.java b/src/test/java/seedu/address/model/client/UniqueClientListTest.java new file mode 100644 index 00000000000..95ec937d2ca --- /dev/null +++ b/src/test/java/seedu/address/model/client/UniqueClientListTest.java @@ -0,0 +1,175 @@ +package seedu.address.model.client; + +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.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TIER_REJECT; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalClients.ALICE; +import static seedu.address.testutil.TypicalClients.BOB; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import seedu.address.model.client.exceptions.DuplicateClientException; +import seedu.address.model.client.exceptions.ClientNotFoundException; +import seedu.address.testutil.ClientBuilder; + +public class UniqueClientListTest { + + private final UniqueClientList uniqueClientList = new UniqueClientList(); + + @Test + public void contains_nullClient_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> uniqueClientList.contains(null)); + } + + @Test + public void contains_clientNotInList_returnsFalse() { + assertFalse(uniqueClientList.contains(ALICE)); + } + + @Test + public void contains_clientInList_returnsTrue() { + uniqueClientList.add(ALICE); + assertTrue(uniqueClientList.contains(ALICE)); + } + + @Test + public void contains_clientWithSameIdentityFieldsInList_returnsTrue() { + uniqueClientList.add(ALICE); + Client editedAlice = new ClientBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTier(VALID_TIER_REJECT) + .build(); + assertTrue(uniqueClientList.contains(editedAlice)); + } + + @Test + public void add_nullClient_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> uniqueClientList.add(null)); + } + + @Test + public void add_duplicateClient_throwsDuplicateClientException() { + uniqueClientList.add(ALICE); + assertThrows(DuplicateClientException.class, () -> uniqueClientList.add(ALICE)); + } + + @Test + public void setClient_nullTargetClient_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> uniqueClientList.setClient(null, ALICE)); + } + + @Test + public void setClient_nullEditedClient_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> uniqueClientList.setClient(ALICE, null)); + } + + @Test + public void setClient_targetClientNotInList_throwsClientNotFoundException() { + assertThrows(ClientNotFoundException.class, () -> uniqueClientList.setClient(ALICE, ALICE)); + } + + @Test + public void setClient_editedClientIsSameClient_success() { + uniqueClientList.add(ALICE); + uniqueClientList.setClient(ALICE, ALICE); + UniqueClientList expectedUniqueClientList = new UniqueClientList(); + expectedUniqueClientList.add(ALICE); + assertEquals(expectedUniqueClientList, uniqueClientList); + } + + @Test + public void setClient_editedClientHasSameIdentity_success() { + uniqueClientList.add(ALICE); + Client editedAlice = new ClientBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTier(VALID_TIER_REJECT) + .build(); + uniqueClientList.setClient(ALICE, editedAlice); + UniqueClientList expectedUniqueClientList = new UniqueClientList(); + expectedUniqueClientList.add(editedAlice); + assertEquals(expectedUniqueClientList, uniqueClientList); + } + + @Test + public void setClient_editedClientHasDifferentIdentity_success() { + uniqueClientList.add(ALICE); + uniqueClientList.setClient(ALICE, BOB); + UniqueClientList expectedUniqueClientList = new UniqueClientList(); + expectedUniqueClientList.add(BOB); + assertEquals(expectedUniqueClientList, uniqueClientList); + } + + @Test + public void setClient_editedClientHasNonUniqueIdentity_throwsDuplicateClientException() { + uniqueClientList.add(ALICE); + uniqueClientList.add(BOB); + assertThrows(DuplicateClientException.class, () -> uniqueClientList.setClient(ALICE, BOB)); + } + + @Test + public void remove_nullClient_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> uniqueClientList.remove(null)); + } + + @Test + public void remove_clientDoesNotExist_throwsClientNotFoundException() { + assertThrows(ClientNotFoundException.class, () -> uniqueClientList.remove(ALICE)); + } + + @Test + public void remove_existingClient_removesClient() { + uniqueClientList.add(ALICE); + uniqueClientList.remove(ALICE); + UniqueClientList expectedUniqueClientList = new UniqueClientList(); + assertEquals(expectedUniqueClientList, uniqueClientList); + } + + @Test + public void setClients_nullUniqueClientList_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> uniqueClientList.setClients((UniqueClientList) null)); + } + + @Test + public void setClients_uniqueClientList_replacesOwnListWithProvidedUniqueClientList() { + uniqueClientList.add(ALICE); + UniqueClientList expectedUniqueClientList = new UniqueClientList(); + expectedUniqueClientList.add(BOB); + uniqueClientList.setClients(expectedUniqueClientList); + assertEquals(expectedUniqueClientList, uniqueClientList); + } + + @Test + public void setClients_nullList_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> uniqueClientList.setClients((List) null)); + } + + @Test + public void setClients_list_replacesOwnListWithProvidedList() { + uniqueClientList.add(ALICE); + List clientList = Collections.singletonList(BOB); + uniqueClientList.setClients(clientList); + UniqueClientList expectedUniqueClientList = new UniqueClientList(); + expectedUniqueClientList.add(BOB); + assertEquals(expectedUniqueClientList, uniqueClientList); + } + + @Test + public void setClients_listWithDuplicateClients_throwsDuplicateClientException() { + List listWithDuplicateClients = Arrays.asList(ALICE, ALICE); + assertThrows(DuplicateClientException.class, () -> uniqueClientList.setClients(listWithDuplicateClients)); + } + + @Test + public void asUnmodifiableObservableList_modifyList_throwsUnsupportedOperationException() { + assertThrows(UnsupportedOperationException.class, () + -> uniqueClientList.asUnmodifiableObservableList().remove(0)); + } + + @Test + public void toStringMethod() { + assertEquals(uniqueClientList.asUnmodifiableObservableList().toString(), uniqueClientList.toString()); + } +} diff --git a/src/test/java/seedu/address/model/person/predicates/AddressContainsSubstringPredicateTest.java b/src/test/java/seedu/address/model/client/predicates/AddressContainsSubstringPredicateTest.java similarity index 84% rename from src/test/java/seedu/address/model/person/predicates/AddressContainsSubstringPredicateTest.java rename to src/test/java/seedu/address/model/client/predicates/AddressContainsSubstringPredicateTest.java index a389f0ba73a..d05f71e72eb 100644 --- a/src/test/java/seedu/address/model/person/predicates/AddressContainsSubstringPredicateTest.java +++ b/src/test/java/seedu/address/model/client/predicates/AddressContainsSubstringPredicateTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; public class AddressContainsSubstringPredicateTest { @@ -35,7 +35,7 @@ public void equals() { // null -> returns false assertFalse(firstPredicate.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(firstPredicate.equals(secondPredicate)); } @@ -43,61 +43,61 @@ public void equals() { public void test_addressContainsSubstring_returnsTrue() { // Partial address match AddressContainsSubstringPredicate predicate = new AddressContainsSubstringPredicate("Block 123"); - assertTrue(predicate.test(new PersonBuilder().withAddress("Block 123 Avenue 2").build())); + assertTrue(predicate.test(new ClientBuilder().withAddress("Block 123 Avenue 2").build())); // Full address match predicate = new AddressContainsSubstringPredicate("Block 123 Avenue 2"); - assertTrue(predicate.test(new PersonBuilder().withAddress("Block 123 Avenue 2").build())); + assertTrue(predicate.test(new ClientBuilder().withAddress("Block 123 Avenue 2").build())); // Mixed-case substring predicate = new AddressContainsSubstringPredicate("blOck 123 avEnuE 2"); - assertTrue(predicate.test(new PersonBuilder().withAddress("Block 123 Avenue 2").build())); + assertTrue(predicate.test(new ClientBuilder().withAddress("Block 123 Avenue 2").build())); } @Test public void test_emptySubstring_throwsException() { AddressContainsSubstringPredicate predicate = new AddressContainsSubstringPredicate(""); Assertions.assertThrows(IllegalArgumentException.class, () -> predicate.test( - new PersonBuilder().withAddress("Alice").build())); + new ClientBuilder().withAddress("Alice").build())); } @Test public void test_addressDoesNotContainSubstring_returnsFalse() { // Non-matching substring AddressContainsSubstringPredicate predicate = new AddressContainsSubstringPredicate("White House"); - assertFalse(predicate.test(new PersonBuilder().withAddress("Block 123").build())); + assertFalse(predicate.test(new ClientBuilder().withAddress("Block 123").build())); // Substring has a single matching word but substring does not match address predicate = new AddressContainsSubstringPredicate("Block 123"); - assertFalse(predicate.test(new PersonBuilder().withAddress("Block 456").build())); + assertFalse(predicate.test(new ClientBuilder().withAddress("Block 456").build())); // Substring matches phone but does not match address predicate = new AddressContainsSubstringPredicate("91234567"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches email but does not match address predicate = new AddressContainsSubstringPredicate("alice@email.com"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches name but does not match address predicate = new AddressContainsSubstringPredicate("Alice"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches remark but does not match remark predicate = new AddressContainsSubstringPredicate("Genius"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches remark but does not match job predicate = new AddressContainsSubstringPredicate("Doctor"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); diff --git a/src/test/java/seedu/address/model/person/predicates/EmailContainsSubstringPredicateTest.java b/src/test/java/seedu/address/model/client/predicates/EmailContainsSubstringPredicateTest.java similarity index 84% rename from src/test/java/seedu/address/model/person/predicates/EmailContainsSubstringPredicateTest.java rename to src/test/java/seedu/address/model/client/predicates/EmailContainsSubstringPredicateTest.java index 7618e611d38..adad0996099 100644 --- a/src/test/java/seedu/address/model/person/predicates/EmailContainsSubstringPredicateTest.java +++ b/src/test/java/seedu/address/model/client/predicates/EmailContainsSubstringPredicateTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; public class EmailContainsSubstringPredicateTest { @@ -35,7 +35,7 @@ public void equals() { // null -> returns false assertFalse(firstPredicate.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(firstPredicate.equals(secondPredicate)); } @@ -43,33 +43,33 @@ public void equals() { public void test_emailContainsSubstring_returnsTrue() { // Partial email match EmailContainsSubstringPredicate predicate = new EmailContainsSubstringPredicate("alice@gmail"); - assertTrue(predicate.test(new PersonBuilder().withEmail("alice@gmail.com").build())); + assertTrue(predicate.test(new ClientBuilder().withEmail("alice@gmail.com").build())); // Full email match predicate = new EmailContainsSubstringPredicate("alice@gmail.com"); - assertTrue(predicate.test(new PersonBuilder().withEmail("alice@gmail.com").build())); + assertTrue(predicate.test(new ClientBuilder().withEmail("alice@gmail.com").build())); // Mixed-case substring predicate = new EmailContainsSubstringPredicate("aLiCe@gMaiL.cOm"); - assertTrue(predicate.test(new PersonBuilder().withEmail("alice@gmail.com").build())); + assertTrue(predicate.test(new ClientBuilder().withEmail("alice@gmail.com").build())); } @Test public void test_emptySubstring_throwsException() { EmailContainsSubstringPredicate predicate = new EmailContainsSubstringPredicate(""); Assertions.assertThrows(IllegalArgumentException.class, () -> predicate.test( - new PersonBuilder().withEmail("Alice").build())); + new ClientBuilder().withEmail("Alice").build())); } @Test public void test_emailDoesNotContainSubstring_returnsFalse() { // Non-matching substring EmailContainsSubstringPredicate predicate = new EmailContainsSubstringPredicate("bob@gmail.com"); - assertFalse(predicate.test(new PersonBuilder().withEmail("alice@yahoo.com").build())); + assertFalse(predicate.test(new ClientBuilder().withEmail("alice@yahoo.com").build())); // Substring has some matching parts but substring does not match email predicate = new EmailContainsSubstringPredicate("bob@gmail"); - assertFalse(predicate.test(new PersonBuilder().withEmail("bob@yahoo.com").build())); + assertFalse(predicate.test(new ClientBuilder().withEmail("bob@yahoo.com").build())); } @Test diff --git a/src/test/java/seedu/address/model/person/predicates/IncomeComparisonPredicateTest.java b/src/test/java/seedu/address/model/client/predicates/IncomeComparisonPredicateTest.java similarity index 82% rename from src/test/java/seedu/address/model/person/predicates/IncomeComparisonPredicateTest.java rename to src/test/java/seedu/address/model/client/predicates/IncomeComparisonPredicateTest.java index a4028c79f26..3c4373f697e 100644 --- a/src/test/java/seedu/address/model/person/predicates/IncomeComparisonPredicateTest.java +++ b/src/test/java/seedu/address/model/client/predicates/IncomeComparisonPredicateTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test; import seedu.address.model.util.IncomeComparisonOperator; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; public class IncomeComparisonPredicateTest { @@ -39,41 +39,41 @@ public void equals() { @Test public void test_incomeEqualComparison_returnsTrue() { IncomeComparisonPredicate predicate = new IncomeComparisonPredicate(new IncomeComparisonOperator("="), 5000); - assertTrue(predicate.test(new PersonBuilder().withIncome(5000).build())); + assertTrue(predicate.test(new ClientBuilder().withIncome(5000).build())); } @Test public void test_incomeEqualComparison_returnsFalse() { IncomeComparisonPredicate predicate = new IncomeComparisonPredicate(new IncomeComparisonOperator("="), 5000); - assertFalse(predicate.test(new PersonBuilder().withIncome(6000).build())); - assertFalse(predicate.test(new PersonBuilder().withIncome(4000).build())); + assertFalse(predicate.test(new ClientBuilder().withIncome(6000).build())); + assertFalse(predicate.test(new ClientBuilder().withIncome(4000).build())); } @Test public void test_incomeGreaterThanComparison_returnsTrue() { IncomeComparisonPredicate predicate = new IncomeComparisonPredicate(new IncomeComparisonOperator(">"), 5000); - assertTrue(predicate.test(new PersonBuilder().withIncome(6000).build())); + assertTrue(predicate.test(new ClientBuilder().withIncome(6000).build())); } @Test public void test_incomeGreaterThanComparison_returnsFalse() { IncomeComparisonPredicate predicate = new IncomeComparisonPredicate(new IncomeComparisonOperator(">"), 5000); - assertFalse(predicate.test(new PersonBuilder().withIncome(4000).build())); - assertFalse(predicate.test(new PersonBuilder().withIncome(5000).build())); + assertFalse(predicate.test(new ClientBuilder().withIncome(4000).build())); + assertFalse(predicate.test(new ClientBuilder().withIncome(5000).build())); } @Test public void test_incomeLessThanComparison_returnsTrue() { IncomeComparisonPredicate predicate = new IncomeComparisonPredicate(new IncomeComparisonOperator("<"), 5000); - assertTrue(predicate.test(new PersonBuilder().withIncome(4000).build())); + assertTrue(predicate.test(new ClientBuilder().withIncome(4000).build())); } @Test public void test_incomeLessThanComparison_returnsFalse() { // Income is not less than the threshold IncomeComparisonPredicate predicate = new IncomeComparisonPredicate(new IncomeComparisonOperator("<"), 5000); - assertFalse(predicate.test(new PersonBuilder().withIncome(6000).build())); - assertFalse(predicate.test(new PersonBuilder().withIncome(5000).build())); + assertFalse(predicate.test(new ClientBuilder().withIncome(6000).build())); + assertFalse(predicate.test(new ClientBuilder().withIncome(5000).build())); } @Test diff --git a/src/test/java/seedu/address/model/person/predicates/JobContainsSubstringPredicateTest.java b/src/test/java/seedu/address/model/client/predicates/JobContainsSubstringPredicateTest.java similarity index 83% rename from src/test/java/seedu/address/model/person/predicates/JobContainsSubstringPredicateTest.java rename to src/test/java/seedu/address/model/client/predicates/JobContainsSubstringPredicateTest.java index 670dfed158d..36a60d532fa 100644 --- a/src/test/java/seedu/address/model/person/predicates/JobContainsSubstringPredicateTest.java +++ b/src/test/java/seedu/address/model/client/predicates/JobContainsSubstringPredicateTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; public class JobContainsSubstringPredicateTest { @@ -35,7 +35,7 @@ public void equals() { // null -> returns false assertFalse(firstPredicate.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(firstPredicate.equals(secondPredicate)); } @@ -43,61 +43,61 @@ public void equals() { public void test_jobContainsSubstring_returnsTrue() { // Partial job match JobContainsSubstringPredicate predicate = new JobContainsSubstringPredicate("Engineer"); - assertTrue(predicate.test(new PersonBuilder().withJob("Software Engineer").build())); + assertTrue(predicate.test(new ClientBuilder().withJob("Software Engineer").build())); // Full job match predicate = new JobContainsSubstringPredicate("Software Engineer"); - assertTrue(predicate.test(new PersonBuilder().withJob("Software Engineer").build())); + assertTrue(predicate.test(new ClientBuilder().withJob("Software Engineer").build())); // Mixed-case substring predicate = new JobContainsSubstringPredicate("sOfTwArE eNginEeR"); - assertTrue(predicate.test(new PersonBuilder().withJob("Software Engineer").build())); + assertTrue(predicate.test(new ClientBuilder().withJob("Software Engineer").build())); } @Test public void test_emptySubstring_throwsException() { JobContainsSubstringPredicate predicate = new JobContainsSubstringPredicate(""); Assertions.assertThrows(IllegalArgumentException.class, () -> predicate.test( - new PersonBuilder().withJob("Software Engineer").build())); + new ClientBuilder().withJob("Software Engineer").build())); } @Test public void test_jobDoesNotContainSubstring_returnsFalse() { // Non-matching substring JobContainsSubstringPredicate predicate = new JobContainsSubstringPredicate("Doctor"); - assertFalse(predicate.test(new PersonBuilder().withJob("Engineer").build())); + assertFalse(predicate.test(new ClientBuilder().withJob("Engineer").build())); // Substring has a single matching word but substring does not match job predicate = new JobContainsSubstringPredicate("Software Engineer"); - assertFalse(predicate.test(new PersonBuilder().withJob("Electrical Engineer").build())); + assertFalse(predicate.test(new ClientBuilder().withJob("Electrical Engineer").build())); // Substring matches name but does not match job predicate = new JobContainsSubstringPredicate("Alice"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches phone but does not match job predicate = new JobContainsSubstringPredicate("91234567"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches email but does not match job predicate = new JobContainsSubstringPredicate("alice@email.com"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches address but does not match job predicate = new JobContainsSubstringPredicate("Main Street"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches remark but does not match job predicate = new JobContainsSubstringPredicate("Genius"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); } diff --git a/src/test/java/seedu/address/model/person/predicates/NameContainsSubstringPredicateTest.java b/src/test/java/seedu/address/model/client/predicates/NameContainsSubstringPredicateTest.java similarity index 83% rename from src/test/java/seedu/address/model/person/predicates/NameContainsSubstringPredicateTest.java rename to src/test/java/seedu/address/model/client/predicates/NameContainsSubstringPredicateTest.java index 2a9603bd3f9..443ce883f06 100644 --- a/src/test/java/seedu/address/model/person/predicates/NameContainsSubstringPredicateTest.java +++ b/src/test/java/seedu/address/model/client/predicates/NameContainsSubstringPredicateTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; public class NameContainsSubstringPredicateTest { @@ -35,7 +35,7 @@ public void equals() { // null -> returns false assertFalse(firstPredicate.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(firstPredicate.equals(secondPredicate)); } @@ -43,61 +43,61 @@ public void equals() { public void test_nameContainsSubstring_returnsTrue() { // Partial name match NameContainsSubstringPredicate predicate = new NameContainsSubstringPredicate("Alice"); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); + assertTrue(predicate.test(new ClientBuilder().withName("Alice Bob").build())); // Full name match predicate = new NameContainsSubstringPredicate("Alice Bob"); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); + assertTrue(predicate.test(new ClientBuilder().withName("Alice Bob").build())); // Mixed-case substring predicate = new NameContainsSubstringPredicate("aLIce bOB"); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); + assertTrue(predicate.test(new ClientBuilder().withName("Alice Bob").build())); } @Test public void test_emptySubstring_throwsException() { NameContainsSubstringPredicate predicate = new NameContainsSubstringPredicate(""); Assertions.assertThrows(IllegalArgumentException.class, () -> predicate.test( - new PersonBuilder().withName("Alice").build())); + new ClientBuilder().withName("Alice").build())); } @Test public void test_nameDoesNotContainSubstring_returnsFalse() { // Non-matching substring NameContainsSubstringPredicate predicate = new NameContainsSubstringPredicate("Carol"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice Bob").build())); + assertFalse(predicate.test(new ClientBuilder().withName("Alice Bob").build())); // Substring has a single matching word but substring does not match name predicate = new NameContainsSubstringPredicate("Bob Carol"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice Carol").build())); + assertFalse(predicate.test(new ClientBuilder().withName("Alice Carol").build())); // Substring matches phone but does not match name predicate = new NameContainsSubstringPredicate("91234567"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches email but does not match name predicate = new NameContainsSubstringPredicate("alice@email.com"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches address but does not match name predicate = new NameContainsSubstringPredicate("Main Street"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches remark but does not match remark predicate = new NameContainsSubstringPredicate("Genius"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches remark but does not match job predicate = new NameContainsSubstringPredicate("Doctor"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); } diff --git a/src/test/java/seedu/address/model/person/predicates/PhoneContainsSubstringPredicateTest.java b/src/test/java/seedu/address/model/client/predicates/PhoneContainsSubstringPredicateTest.java similarity index 87% rename from src/test/java/seedu/address/model/person/predicates/PhoneContainsSubstringPredicateTest.java rename to src/test/java/seedu/address/model/client/predicates/PhoneContainsSubstringPredicateTest.java index a1aacdfbbc0..89cad28d4ea 100644 --- a/src/test/java/seedu/address/model/person/predicates/PhoneContainsSubstringPredicateTest.java +++ b/src/test/java/seedu/address/model/client/predicates/PhoneContainsSubstringPredicateTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; public class PhoneContainsSubstringPredicateTest { @@ -35,7 +35,7 @@ public void equals() { // null -> returns false assertFalse(firstPredicate.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(firstPredicate.equals(secondPredicate)); } @@ -43,7 +43,7 @@ public void equals() { public void test_phoneContainsSubstring_returnsTrue() { // Exact match PhoneContainsSubstringPredicate predicate = new PhoneContainsSubstringPredicate("91112222"); - assertTrue(predicate.test(new PersonBuilder().withPhone("91112222").build())); + assertTrue(predicate.test(new ClientBuilder().withPhone("91112222").build())); // Partial matches cannot be tested due to parsing requirements of phone number, which disallows // phone numbers that aren't 8 digits. @@ -53,23 +53,23 @@ public void test_phoneContainsSubstring_returnsTrue() { public void test_emptySubstring_throwsException() { PhoneContainsSubstringPredicate predicate = new PhoneContainsSubstringPredicate(""); Assertions.assertThrows(IllegalArgumentException.class, () -> predicate.test( - new PersonBuilder().withPhone("91112222").build())); + new ClientBuilder().withPhone("91112222").build())); } @Test public void test_phoneDoesNotContainSubstring_returnsFalse() { // Non-matching substring PhoneContainsSubstringPredicate predicate = new PhoneContainsSubstringPredicate("91112222"); - assertFalse(predicate.test(new PersonBuilder().withPhone("81112222").build())); + assertFalse(predicate.test(new ClientBuilder().withPhone("81112222").build())); // Substring matches name but does not match phone predicate = new PhoneContainsSubstringPredicate("91112222"); - assertFalse(predicate.test(new PersonBuilder().withName("91112222").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("91112222").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").build())); // Substring matches address but does not match phone predicate = new PhoneContainsSubstringPredicate("91112222"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("91112222").build())); } diff --git a/src/test/java/seedu/address/model/person/predicates/RemarkContainsSubstringPredicateTest.java b/src/test/java/seedu/address/model/client/predicates/RemarkContainsSubstringPredicateTest.java similarity index 84% rename from src/test/java/seedu/address/model/person/predicates/RemarkContainsSubstringPredicateTest.java rename to src/test/java/seedu/address/model/client/predicates/RemarkContainsSubstringPredicateTest.java index f56f88bd1ca..7aa14eaf858 100644 --- a/src/test/java/seedu/address/model/person/predicates/RemarkContainsSubstringPredicateTest.java +++ b/src/test/java/seedu/address/model/client/predicates/RemarkContainsSubstringPredicateTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; public class RemarkContainsSubstringPredicateTest { @@ -35,7 +35,7 @@ public void equals() { // null -> returns false assertFalse(firstPredicate.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(firstPredicate.equals(secondPredicate)); } @@ -43,61 +43,61 @@ public void equals() { public void test_remarkContainsSubstring_returnsTrue() { // Partial remark match RemarkContainsSubstringPredicate predicate = new RemarkContainsSubstringPredicate("Engineer"); - assertTrue(predicate.test(new PersonBuilder().withRemark("Software Engineer").build())); + assertTrue(predicate.test(new ClientBuilder().withRemark("Software Engineer").build())); // Full remark match predicate = new RemarkContainsSubstringPredicate("Software Engineer"); - assertTrue(predicate.test(new PersonBuilder().withRemark("Software Engineer").build())); + assertTrue(predicate.test(new ClientBuilder().withRemark("Software Engineer").build())); // Mixed-case substring predicate = new RemarkContainsSubstringPredicate("sOfTwArE eNginEeR"); - assertTrue(predicate.test(new PersonBuilder().withRemark("Software Engineer").build())); + assertTrue(predicate.test(new ClientBuilder().withRemark("Software Engineer").build())); } @Test public void test_emptySubstring_throwsException() { RemarkContainsSubstringPredicate predicate = new RemarkContainsSubstringPredicate(""); Assertions.assertThrows(IllegalArgumentException.class, () -> predicate.test( - new PersonBuilder().withRemark("Software Engineer").build())); + new ClientBuilder().withRemark("Software Engineer").build())); } @Test public void test_remarkDoesNotContainSubstring_returnsFalse() { // Non-matching substring RemarkContainsSubstringPredicate predicate = new RemarkContainsSubstringPredicate("Doctor"); - assertFalse(predicate.test(new PersonBuilder().withRemark("Engineer").build())); + assertFalse(predicate.test(new ClientBuilder().withRemark("Engineer").build())); // Substring has a single matching word but substring does not match remark predicate = new RemarkContainsSubstringPredicate("Software Engineer"); - assertFalse(predicate.test(new PersonBuilder().withRemark("Electrical Engineer").build())); + assertFalse(predicate.test(new ClientBuilder().withRemark("Electrical Engineer").build())); // Substring matches name but does not match remark predicate = new RemarkContainsSubstringPredicate("Alice"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches phone but does not match remark predicate = new RemarkContainsSubstringPredicate("91234567"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches email but does not match remark predicate = new RemarkContainsSubstringPredicate("alice@email.com"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches address but does not match remark predicate = new RemarkContainsSubstringPredicate("Main Street"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches remark but does not match job predicate = new RemarkContainsSubstringPredicate("Doctor"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); } diff --git a/src/test/java/seedu/address/model/person/predicates/TierStartsWithSubstringPredicateTest.java b/src/test/java/seedu/address/model/client/predicates/TierStartsWithSubstringPredicateTest.java similarity index 84% rename from src/test/java/seedu/address/model/person/predicates/TierStartsWithSubstringPredicateTest.java rename to src/test/java/seedu/address/model/client/predicates/TierStartsWithSubstringPredicateTest.java index 7828605e2d4..a9d5209b2e5 100644 --- a/src/test/java/seedu/address/model/person/predicates/TierStartsWithSubstringPredicateTest.java +++ b/src/test/java/seedu/address/model/client/predicates/TierStartsWithSubstringPredicateTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.predicates; +package seedu.address.model.client.predicates; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.ClientBuilder; public class TierStartsWithSubstringPredicateTest { @@ -35,7 +35,7 @@ public void equals() { // null -> returns false assertFalse(firstPredicate.equals(null)); - // different person -> returns false + // different client -> returns false assertFalse(firstPredicate.equals(secondPredicate)); } @@ -43,57 +43,57 @@ public void equals() { public void test_tierStartsWithSubstring_returnsTrue() { // Full tier match TierStartsWithSubstringPredicate predicate = new TierStartsWithSubstringPredicate("gold"); - assertTrue(predicate.test(new PersonBuilder().withTier("gold").build())); + assertTrue(predicate.test(new ClientBuilder().withTier("gold").build())); // Partial tier match predicate = new TierStartsWithSubstringPredicate("go"); - assertTrue(predicate.test(new PersonBuilder().withTier("gold").build())); + assertTrue(predicate.test(new ClientBuilder().withTier("gold").build())); // Mixed-case substring predicate = new TierStartsWithSubstringPredicate("gOlD"); - assertTrue(predicate.test(new PersonBuilder().withTier("GOLD").build())); + assertTrue(predicate.test(new ClientBuilder().withTier("GOLD").build())); } @Test public void test_emptySubstring_throwsException() { TierStartsWithSubstringPredicate predicate = new TierStartsWithSubstringPredicate(""); Assertions.assertThrows(IllegalArgumentException.class, () -> predicate.test( - new PersonBuilder().withTier("GOLD").build())); + new ClientBuilder().withTier("GOLD").build())); } @Test public void test_tierDoesNotStartWithSubstring_returnsFalse() { // Non-matching substring TierStartsWithSubstringPredicate predicate = new TierStartsWithSubstringPredicate("gold"); - assertFalse(predicate.test(new PersonBuilder().withTier("silver").build())); + assertFalse(predicate.test(new ClientBuilder().withTier("silver").build())); // Substring matches name but does not match tier predicate = new TierStartsWithSubstringPredicate("Alice"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").withTier("GOLD").build())); // Substring matches phone but does not match tier predicate = new TierStartsWithSubstringPredicate("91234567"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").build())); // Substring matches email but does not match tier predicate = new TierStartsWithSubstringPredicate("alice@email.com"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").withTier("GOLD").build())); // Substring matches address but does not match tier predicate = new TierStartsWithSubstringPredicate("Main Street"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").withTier("GOLD").build())); // Substring matches remark but does not match tier predicate = new TierStartsWithSubstringPredicate("Doctor"); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("91234567") + assertFalse(predicate.test(new ClientBuilder().withName("Alice").withPhone("91234567") .withEmail("alice@email.com").withAddress("Main Street").withRemark("Genius") .withJob("Doctor").withTier("GOLD").build())); } diff --git a/src/test/java/seedu/address/model/person/UniquePersonListTest.java b/src/test/java/seedu/address/model/person/UniquePersonListTest.java deleted file mode 100644 index 7586a2a7c85..00000000000 --- a/src/test/java/seedu/address/model/person/UniquePersonListTest.java +++ /dev/null @@ -1,175 +0,0 @@ -package seedu.address.model.person; - -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.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TIER_REJECT; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.BOB; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import org.junit.jupiter.api.Test; - -import seedu.address.model.person.exceptions.DuplicatePersonException; -import seedu.address.model.person.exceptions.PersonNotFoundException; -import seedu.address.testutil.PersonBuilder; - -public class UniquePersonListTest { - - private final UniquePersonList uniquePersonList = new UniquePersonList(); - - @Test - public void contains_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.contains(null)); - } - - @Test - public void contains_personNotInList_returnsFalse() { - assertFalse(uniquePersonList.contains(ALICE)); - } - - @Test - public void contains_personInList_returnsTrue() { - uniquePersonList.add(ALICE); - assertTrue(uniquePersonList.contains(ALICE)); - } - - @Test - public void contains_personWithSameIdentityFieldsInList_returnsTrue() { - uniquePersonList.add(ALICE); - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTier(VALID_TIER_REJECT) - .build(); - assertTrue(uniquePersonList.contains(editedAlice)); - } - - @Test - public void add_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.add(null)); - } - - @Test - public void add_duplicatePerson_throwsDuplicatePersonException() { - uniquePersonList.add(ALICE); - assertThrows(DuplicatePersonException.class, () -> uniquePersonList.add(ALICE)); - } - - @Test - public void setPerson_nullTargetPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.setPerson(null, ALICE)); - } - - @Test - public void setPerson_nullEditedPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.setPerson(ALICE, null)); - } - - @Test - public void setPerson_targetPersonNotInList_throwsPersonNotFoundException() { - assertThrows(PersonNotFoundException.class, () -> uniquePersonList.setPerson(ALICE, ALICE)); - } - - @Test - public void setPerson_editedPersonIsSamePerson_success() { - uniquePersonList.add(ALICE); - uniquePersonList.setPerson(ALICE, ALICE); - UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(ALICE); - assertEquals(expectedUniquePersonList, uniquePersonList); - } - - @Test - public void setPerson_editedPersonHasSameIdentity_success() { - uniquePersonList.add(ALICE); - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTier(VALID_TIER_REJECT) - .build(); - uniquePersonList.setPerson(ALICE, editedAlice); - UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(editedAlice); - assertEquals(expectedUniquePersonList, uniquePersonList); - } - - @Test - public void setPerson_editedPersonHasDifferentIdentity_success() { - uniquePersonList.add(ALICE); - uniquePersonList.setPerson(ALICE, BOB); - UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(BOB); - assertEquals(expectedUniquePersonList, uniquePersonList); - } - - @Test - public void setPerson_editedPersonHasNonUniqueIdentity_throwsDuplicatePersonException() { - uniquePersonList.add(ALICE); - uniquePersonList.add(BOB); - assertThrows(DuplicatePersonException.class, () -> uniquePersonList.setPerson(ALICE, BOB)); - } - - @Test - public void remove_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.remove(null)); - } - - @Test - public void remove_personDoesNotExist_throwsPersonNotFoundException() { - assertThrows(PersonNotFoundException.class, () -> uniquePersonList.remove(ALICE)); - } - - @Test - public void remove_existingPerson_removesPerson() { - uniquePersonList.add(ALICE); - uniquePersonList.remove(ALICE); - UniquePersonList expectedUniquePersonList = new UniquePersonList(); - assertEquals(expectedUniquePersonList, uniquePersonList); - } - - @Test - public void setPersons_nullUniquePersonList_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.setPersons((UniquePersonList) null)); - } - - @Test - public void setPersons_uniquePersonList_replacesOwnListWithProvidedUniquePersonList() { - uniquePersonList.add(ALICE); - UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(BOB); - uniquePersonList.setPersons(expectedUniquePersonList); - assertEquals(expectedUniquePersonList, uniquePersonList); - } - - @Test - public void setPersons_nullList_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.setPersons((List) null)); - } - - @Test - public void setPersons_list_replacesOwnListWithProvidedList() { - uniquePersonList.add(ALICE); - List personList = Collections.singletonList(BOB); - uniquePersonList.setPersons(personList); - UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(BOB); - assertEquals(expectedUniquePersonList, uniquePersonList); - } - - @Test - public void setPersons_listWithDuplicatePersons_throwsDuplicatePersonException() { - List listWithDuplicatePersons = Arrays.asList(ALICE, ALICE); - assertThrows(DuplicatePersonException.class, () -> uniquePersonList.setPersons(listWithDuplicatePersons)); - } - - @Test - public void asUnmodifiableObservableList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () - -> uniquePersonList.asUnmodifiableObservableList().remove(0)); - } - - @Test - public void toStringMethod() { - assertEquals(uniquePersonList.asUnmodifiableObservableList().toString(), uniquePersonList.toString()); - } -} diff --git a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java b/src/test/java/seedu/address/storage/JsonAdaptedClientTest.java similarity index 72% rename from src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java rename to src/test/java/seedu/address/storage/JsonAdaptedClientTest.java index cbe087e573b..643e2d73460 100644 --- a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/seedu/address/storage/JsonAdaptedClientTest.java @@ -1,20 +1,20 @@ package seedu.address.storage; import static org.junit.jupiter.api.Assertions.assertEquals; -import static seedu.address.storage.JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT; +import static seedu.address.storage.JsonAdaptedClient.MISSING_FIELD_MESSAGE_FORMAT; import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.BENSON; +import static seedu.address.testutil.TypicalClients.BENSON; import org.junit.jupiter.api.Test; import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Job; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; +import seedu.address.model.client.Address; +import seedu.address.model.client.Email; +import seedu.address.model.client.Job; +import seedu.address.model.client.Name; +import seedu.address.model.client.Phone; -public class JsonAdaptedPersonTest { +public class JsonAdaptedClientTest { private static final String INVALID_NAME = "R@chel"; private static final String INVALID_PHONE = "+651234"; private static final String INVALID_ADDRESS = " "; @@ -34,116 +34,116 @@ public class JsonAdaptedPersonTest { private static final JsonAdaptedStatus VALID_STATUS = new JsonAdaptedStatus(BENSON.getStatus()); @Test - public void toModelType_validPersonDetails_returnsPerson() throws Exception { - JsonAdaptedPerson person = new JsonAdaptedPerson(BENSON); - assertEquals(BENSON, person.toModelType()); + public void toModelType_validClientDetails_returnsClient() throws Exception { + JsonAdaptedClient client = new JsonAdaptedClient(BENSON); + assertEquals(BENSON, client.toModelType()); } @Test public void toModelType_invalidName_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_JOB, VALID_INCOME_STRING, VALID_TIER, VALID_REMARK, VALID_STATUS); String expectedMessage = Name.MESSAGE_CONSTRAINTS; - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + assertThrows(IllegalValueException.class, expectedMessage, client::toModelType); } @Test public void toModelType_nullName_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_JOB, VALID_INCOME_STRING, VALID_TIER, VALID_REMARK, VALID_STATUS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + assertThrows(IllegalValueException.class, expectedMessage, client::toModelType); } @Test public void toModelType_invalidPhone_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_JOB, VALID_INCOME_STRING, VALID_TIER, VALID_REMARK, VALID_STATUS); String expectedMessage = Phone.MESSAGE_CONSTRAINTS; - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + assertThrows(IllegalValueException.class, expectedMessage, client::toModelType); } @Test public void toModelType_nullPhone_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, VALID_JOB, VALID_INCOME_STRING, VALID_TIER, VALID_REMARK, VALID_STATUS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + assertThrows(IllegalValueException.class, expectedMessage, client::toModelType); } @Test public void toModelType_invalidEmail_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_ADDRESS, VALID_JOB, VALID_INCOME_STRING, VALID_TIER, VALID_REMARK, VALID_STATUS); String expectedMessage = Email.MESSAGE_CONSTRAINTS; - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + assertThrows(IllegalValueException.class, expectedMessage, client::toModelType); } @Test public void toModelType_nullEmail_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, VALID_JOB, VALID_INCOME_STRING, VALID_TIER, VALID_REMARK, VALID_STATUS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + assertThrows(IllegalValueException.class, expectedMessage, client::toModelType); } @Test public void toModelType_invalidAddress_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, INVALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(VALID_NAME, VALID_PHONE, VALID_EMAIL, INVALID_ADDRESS, VALID_JOB, VALID_INCOME_STRING, VALID_TIER, VALID_REMARK, VALID_STATUS); String expectedMessage = Address.MESSAGE_CONSTRAINTS; - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + assertThrows(IllegalValueException.class, expectedMessage, client::toModelType); } @Test public void toModelType_nullAddress_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, null, + JsonAdaptedClient client = + new JsonAdaptedClient(VALID_NAME, VALID_PHONE, VALID_EMAIL, null, VALID_JOB, VALID_INCOME_STRING, VALID_TIER, VALID_REMARK, VALID_STATUS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName()); - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + assertThrows(IllegalValueException.class, expectedMessage, client::toModelType); } @Test public void toModelType_invalidJob_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, INVALID_JOB, VALID_INCOME_STRING, VALID_TIER, VALID_REMARK, VALID_STATUS); String expectedMessage = Job.MESSAGE_CONSTRAINTS; - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + assertThrows(IllegalValueException.class, expectedMessage, client::toModelType); } @Test public void toModelType_nullJob_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, null, VALID_INCOME_STRING, VALID_TIER, VALID_REMARK, VALID_STATUS); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Job.class.getSimpleName()); - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + assertThrows(IllegalValueException.class, expectedMessage, client::toModelType); } @Test public void toModelType_invalidTier_throwsIllegalValueException() { JsonAdaptedTier invalidTier = new JsonAdaptedTier(INVALID_TIER);; - JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_JOB, VALID_INCOME_STRING, invalidTier, VALID_REMARK, VALID_STATUS); - assertThrows(IllegalValueException.class, person::toModelType); + assertThrows(IllegalValueException.class, client::toModelType); } @Test public void toModelType_invalidRemark_throwsIllegalValueException() { - JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + JsonAdaptedClient client = + new JsonAdaptedClient(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_JOB, VALID_INCOME_STRING, VALID_TIER, null, VALID_STATUS); - assertThrows(IllegalValueException.class, person::toModelType); + assertThrows(IllegalValueException.class, client::toModelType); } } diff --git a/src/test/java/seedu/address/storage/JsonAgentAssistStorageTest.java b/src/test/java/seedu/address/storage/JsonAgentAssistStorageTest.java index e0e14deccb7..89ad1b62f5a 100644 --- a/src/test/java/seedu/address/storage/JsonAgentAssistStorageTest.java +++ b/src/test/java/seedu/address/storage/JsonAgentAssistStorageTest.java @@ -3,10 +3,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.HOON; -import static seedu.address.testutil.TypicalPersons.IDA; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalClients.ALICE; +import static seedu.address.testutil.TypicalClients.HOON; +import static seedu.address.testutil.TypicalClients.IDA; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import java.io.IOException; import java.nio.file.Path; @@ -51,13 +51,13 @@ public void read_notJsonFormat_exceptionThrown() { } @Test - public void readAgentAssist_invalidPersonAgentAssist_throwDataLoadingException() { - assertThrows(DataLoadingException.class, () -> readAgentAssist("invalidPersonAgentAssist.json")); + public void readAgentAssist_invalidClientAgentAssist_throwDataLoadingException() { + assertThrows(DataLoadingException.class, () -> readAgentAssist("invalidClientAgentAssist.json")); } @Test - public void readAgentAssist_invalidAndValidPersonAgentAssist_throwDataLoadingException() { - assertThrows(DataLoadingException.class, () -> readAgentAssist("invalidAndValidPersonAgentAssist.json")); + public void readAgentAssist_invalidAndValidClientAgentAssist_throwDataLoadingException() { + assertThrows(DataLoadingException.class, () -> readAgentAssist("invalidAndValidClientAgentAssist.json")); } @Test @@ -72,14 +72,14 @@ public void readAndSaveAgentAssist_allInOrder_success() throws Exception { assertEquals(original, new AgentAssist(readBack)); // Modify data, overwrite exiting file, and read back - original.addPerson(HOON); - original.removePerson(ALICE); + original.addClient(HOON); + original.removeClient(ALICE); jsonAgentAssistStorage.saveAgentAssist(original, filePath); readBack = jsonAgentAssistStorage.readAgentAssist(filePath).get(); assertEquals(original, new AgentAssist(readBack)); // Save and read without specifying file path - original.addPerson(IDA); + original.addClient(IDA); jsonAgentAssistStorage.saveAgentAssist(original); // file path not specified readBack = jsonAgentAssistStorage.readAgentAssist().get(); // file path not specified assertEquals(original, new AgentAssist(readBack)); diff --git a/src/test/java/seedu/address/storage/JsonSerializableAgentAssistTest.java b/src/test/java/seedu/address/storage/JsonSerializableAgentAssistTest.java index d8700c2688f..a70b082a754 100644 --- a/src/test/java/seedu/address/storage/JsonSerializableAgentAssistTest.java +++ b/src/test/java/seedu/address/storage/JsonSerializableAgentAssistTest.java @@ -11,37 +11,37 @@ import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.commons.util.JsonUtil; import seedu.address.model.AgentAssist; -import seedu.address.testutil.TypicalPersons; +import seedu.address.testutil.TypicalClients; public class JsonSerializableAgentAssistTest { private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonSerializableAgentAssistTest"); - private static final Path TYPICAL_PERSONS_FILE = TEST_DATA_FOLDER.resolve("typicalPersonsAgentAssist.json"); - private static final Path INVALID_PERSON_FILE = TEST_DATA_FOLDER.resolve("invalidPersonAgentAssist.json"); - private static final Path DUPLICATE_PERSON_FILE = TEST_DATA_FOLDER.resolve("duplicatePersonAgentAssist.json"); + private static final Path TYPICAL_CLIENTS_FILE = TEST_DATA_FOLDER.resolve("typicalClientsAgentAssist.json"); + private static final Path INVALID_CLIENT_FILE = TEST_DATA_FOLDER.resolve("invalidClientAgentAssist.json"); + private static final Path DUPLICATE_CLIENT_FILE = TEST_DATA_FOLDER.resolve("duplicateClientAgentAssist.json"); @Test - public void toModelType_typicalPersonsFile_success() throws Exception { - JsonSerializableAgentAssist dataFromFile = JsonUtil.readJsonFile(TYPICAL_PERSONS_FILE, + public void toModelType_typicalClientsFile_success() throws Exception { + JsonSerializableAgentAssist dataFromFile = JsonUtil.readJsonFile(TYPICAL_CLIENTS_FILE, JsonSerializableAgentAssist.class).get(); AgentAssist agentAssistFromFile = dataFromFile.toModelType(); - AgentAssist typicalPersonsAgentAssist = TypicalPersons.getTypicalAgentAssist(); + AgentAssist typicalClientsAgentAssist = TypicalClients.getTypicalAgentAssist(); System.out.println("Agent Assist: " + agentAssistFromFile); - assertEquals(agentAssistFromFile, typicalPersonsAgentAssist); + assertEquals(agentAssistFromFile, typicalClientsAgentAssist); } @Test - public void toModelType_invalidPersonFile_throwsIllegalValueException() throws Exception { - JsonSerializableAgentAssist dataFromFile = JsonUtil.readJsonFile(INVALID_PERSON_FILE, + public void toModelType_invalidClientFile_throwsIllegalValueException() throws Exception { + JsonSerializableAgentAssist dataFromFile = JsonUtil.readJsonFile(INVALID_CLIENT_FILE, JsonSerializableAgentAssist.class).get(); assertThrows(IllegalValueException.class, dataFromFile::toModelType); } @Test - public void toModelType_duplicatePersons_throwsIllegalValueException() throws Exception { - JsonSerializableAgentAssist dataFromFile = JsonUtil.readJsonFile(DUPLICATE_PERSON_FILE, + public void toModelType_duplicateClients_throwsIllegalValueException() throws Exception { + JsonSerializableAgentAssist dataFromFile = JsonUtil.readJsonFile(DUPLICATE_CLIENT_FILE, JsonSerializableAgentAssist.class).get(); - assertThrows(IllegalValueException.class, JsonSerializableAgentAssist.MESSAGE_DUPLICATE_PERSON, + assertThrows(IllegalValueException.class, JsonSerializableAgentAssist.MESSAGE_DUPLICATE_CLIENT, dataFromFile::toModelType); } diff --git a/src/test/java/seedu/address/storage/StorageManagerTest.java b/src/test/java/seedu/address/storage/StorageManagerTest.java index c8d08db97b4..f5d536e733a 100644 --- a/src/test/java/seedu/address/storage/StorageManagerTest.java +++ b/src/test/java/seedu/address/storage/StorageManagerTest.java @@ -2,7 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static seedu.address.testutil.TypicalPersons.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import java.nio.file.Path; diff --git a/src/test/java/seedu/address/testutil/AgentAssistBuilder.java b/src/test/java/seedu/address/testutil/AgentAssistBuilder.java index 20562b8a249..fa357a0af72 100644 --- a/src/test/java/seedu/address/testutil/AgentAssistBuilder.java +++ b/src/test/java/seedu/address/testutil/AgentAssistBuilder.java @@ -1,12 +1,12 @@ package seedu.address.testutil; import seedu.address.model.AgentAssist; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * A utility class to help with building AgentAssist objects. * Example usage:
    - * {@code AgentAssist ab = new AgentAssistBuilder().withPerson("John", "Doe").build();} + * {@code AgentAssist ab = new AgentAssistBuilder().withClient("John", "Doe").build();} */ public class AgentAssistBuilder { @@ -21,10 +21,10 @@ public AgentAssistBuilder(AgentAssist agentassist) { } /** - * Adds a new {@code Person} to the {@code AgentAssist} that we are building. + * Adds a new {@code Client} to the {@code AgentAssist} that we are building. */ - public AgentAssistBuilder withPerson(Person person) { - agentassist.addPerson(person); + public AgentAssistBuilder withClient(Client client) { + agentassist.addClient(client); return this; } diff --git a/src/test/java/seedu/address/testutil/PersonBuilder.java b/src/test/java/seedu/address/testutil/ClientBuilder.java similarity index 51% rename from src/test/java/seedu/address/testutil/PersonBuilder.java rename to src/test/java/seedu/address/testutil/ClientBuilder.java index 74b12af016d..48857381c84 100644 --- a/src/test/java/seedu/address/testutil/PersonBuilder.java +++ b/src/test/java/seedu/address/testutil/ClientBuilder.java @@ -1,21 +1,21 @@ package seedu.address.testutil; import seedu.address.logic.commands.CommandCommons; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Income; -import seedu.address.model.person.Job; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.person.Remark; +import seedu.address.model.client.Address; +import seedu.address.model.client.Client; +import seedu.address.model.client.Email; +import seedu.address.model.client.Income; +import seedu.address.model.client.Job; +import seedu.address.model.client.Name; +import seedu.address.model.client.Phone; +import seedu.address.model.client.Remark; import seedu.address.model.status.Status; import seedu.address.model.tier.Tier; /** - * A utility class to help with building Person objects. + * A utility class to help with building Client objects. */ -public class PersonBuilder { +public class ClientBuilder { // defaults shown here belong to mandatory fields, and are hence not present in CommandCommons public static final String DEFAULT_NAME = "Amy Bee"; @@ -36,9 +36,9 @@ public class PersonBuilder { private Status status; /** - * Creates a {@code PersonBuilder} with the default details. + * Creates a {@code ClientBuilder} with the default details. */ - public PersonBuilder() { + public ClientBuilder() { name = new Name(DEFAULT_NAME); phone = new Phone(DEFAULT_PHONE); email = new Email(DEFAULT_EMAIL); @@ -51,93 +51,93 @@ public PersonBuilder() { } /** - * Initializes the PersonBuilder with the data of {@code personToCopy}. + * Initializes the ClientBuilder with the data of {@code clientToCopy}. */ - public PersonBuilder(Person personToCopy) { - name = personToCopy.getName(); - phone = personToCopy.getPhone(); - email = personToCopy.getEmail(); - address = personToCopy.getAddress(); - job = personToCopy.getJob(); - income = personToCopy.getIncome(); - tier = personToCopy.getTier(); - remark = personToCopy.getRemark(); - status = personToCopy.getStatus(); + public ClientBuilder(Client clientToCopy) { + name = clientToCopy.getName(); + phone = clientToCopy.getPhone(); + email = clientToCopy.getEmail(); + address = clientToCopy.getAddress(); + job = clientToCopy.getJob(); + income = clientToCopy.getIncome(); + tier = clientToCopy.getTier(); + remark = clientToCopy.getRemark(); + status = clientToCopy.getStatus(); } /** - * Sets the {@code Name} of the {@code Person} that we are building. + * Sets the {@code Name} of the {@code Client} that we are building. */ - public PersonBuilder withName(String name) { + public ClientBuilder withName(String name) { this.name = new Name(name); return this; } /** - * Sets the {@code Phone} of the {@code Person} that we are building. + * Sets the {@code Phone} of the {@code Client} that we are building. */ - public PersonBuilder withPhone(String phone) { + public ClientBuilder withPhone(String phone) { this.phone = new Phone(phone); return this; } /** - * Sets the {@code Email} of the {@code Person} that we are building. + * Sets the {@code Email} of the {@code Client} that we are building. */ - public PersonBuilder withEmail(String email) { + public ClientBuilder withEmail(String email) { this.email = new Email(email); return this; } /** - * Sets the {@code Address} of the {@code Person} that we are building. + * Sets the {@code Address} of the {@code Client} that we are building. */ - public PersonBuilder withAddress(String address) { + public ClientBuilder withAddress(String address) { this.address = new Address(address); return this; } /** - * Sets the {@code Job} of the {@code Person} that we are building. + * Sets the {@code Job} of the {@code Client} that we are building. */ - public PersonBuilder withJob(String job) { + public ClientBuilder withJob(String job) { this.job = new Job(job); return this; } /** - * Sets the {@code Income} of the {@code Person} that we are building. + * Sets the {@code Income} of the {@code Client} that we are building. */ - public PersonBuilder withIncome(int income) { + public ClientBuilder withIncome(int income) { this.income = new Income(income); return this; } /** - * Parses the {@code tier} into a {@code Set} and set it to the {@code Person} that we are building. + * Parses the {@code tier} into a {@code Set} and set it to the {@code Client} that we are building. */ - public PersonBuilder withTier(String tier) { + public ClientBuilder withTier(String tier) { this.tier = new Tier(tier); return this; } /** - * Sets the {@code remark} of the {@code Person} that we are building. + * Sets the {@code remark} of the {@code Client} that we are building. */ - public PersonBuilder withRemark(String remark) { + public ClientBuilder withRemark(String remark) { this.remark = new Remark(remark); return this; } /** - * Sets the {@code status} of the {@code Person} that we are building. + * Sets the {@code status} of the {@code Client} that we are building. */ - public PersonBuilder withStatus(String status) { + public ClientBuilder withStatus(String status) { this.status = new Status(status); return this; } - public Person build() { - return new Person(name, phone, email, address, job, income, tier, remark, status); + public Client build() { + return new Client(name, phone, email, address, job, income, tier, remark, status); } } diff --git a/src/test/java/seedu/address/testutil/PersonUtil.java b/src/test/java/seedu/address/testutil/ClientUtil.java similarity index 62% rename from src/test/java/seedu/address/testutil/PersonUtil.java rename to src/test/java/seedu/address/testutil/ClientUtil.java index 08c6b4244c9..4d7a867b5be 100644 --- a/src/test/java/seedu/address/testutil/PersonUtil.java +++ b/src/test/java/seedu/address/testutil/ClientUtil.java @@ -10,41 +10,41 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_TIER; import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.model.person.Person; +import seedu.address.logic.commands.EditCommand.EditClientDescriptor; +import seedu.address.model.client.Client; /** - * A utility class for Person. + * A utility class for Client. */ -public class PersonUtil { +public class ClientUtil { /** - * Returns an add command string for adding the {@code person}. + * Returns an add command string for adding the {@code client}. */ - public static String getAddCommand(Person person) { - return AddCommand.COMMAND_WORD + " " + getPersonDetails(person); + public static String getAddCommand(Client client) { + return AddCommand.COMMAND_WORD + " " + getClientDetails(client); } /** - * Returns the part of command string for the given {@code person}'s details. + * Returns the part of command string for the given {@code client}'s details. */ - public static String getPersonDetails(Person person) { + public static String getClientDetails(Client client) { StringBuilder sb = new StringBuilder(); - sb.append(PREFIX_NAME + person.getName().fullName + " "); - sb.append(PREFIX_PHONE + person.getPhone().value + " "); - sb.append(PREFIX_EMAIL + person.getEmail().value + " "); - sb.append(PREFIX_ADDRESS + person.getAddress().value + " "); - sb.append(PREFIX_JOB + person.getJob().value + " "); - sb.append(PREFIX_INCOME + (String.valueOf(person.getIncome().value)) + " "); - sb.append(PREFIX_TIER + person.getTier().toParsableString() + " "); - sb.append(PREFIX_NEW_REMARK + person.getRemark().value + " "); + sb.append(PREFIX_NAME + client.getName().fullName + " "); + sb.append(PREFIX_PHONE + client.getPhone().value + " "); + sb.append(PREFIX_EMAIL + client.getEmail().value + " "); + sb.append(PREFIX_ADDRESS + client.getAddress().value + " "); + sb.append(PREFIX_JOB + client.getJob().value + " "); + sb.append(PREFIX_INCOME + (String.valueOf(client.getIncome().value)) + " "); + sb.append(PREFIX_TIER + client.getTier().toParsableString() + " "); + sb.append(PREFIX_NEW_REMARK + client.getRemark().value + " "); return sb.toString(); } /** - * Returns the part of command string for the given {@code EditPersonDescriptor}'s details. + * Returns the part of command string for the given {@code EditClientDescriptor}'s details. */ - public static String getEditPersonDescriptorDetails(EditPersonDescriptor descriptor) { + public static String getEditClientDescriptorDetails(EditClientDescriptor descriptor) { StringBuilder sb = new StringBuilder(); descriptor.getName().ifPresent(name -> sb.append(PREFIX_NAME).append(name.fullName).append(" ")); descriptor.getPhone().ifPresent(phone -> sb.append(PREFIX_PHONE).append(phone.value).append(" ")); diff --git a/src/test/java/seedu/address/testutil/EditClientDescriptorBuilder.java b/src/test/java/seedu/address/testutil/EditClientDescriptorBuilder.java new file mode 100644 index 00000000000..32881ff6dab --- /dev/null +++ b/src/test/java/seedu/address/testutil/EditClientDescriptorBuilder.java @@ -0,0 +1,127 @@ +package seedu.address.testutil; + +import seedu.address.logic.commands.EditCommand.EditClientDescriptor; +import seedu.address.model.client.Address; +import seedu.address.model.client.Email; +import seedu.address.model.client.Income; +import seedu.address.model.client.Job; +import seedu.address.model.client.Name; +import seedu.address.model.client.Client; +import seedu.address.model.client.Phone; +import seedu.address.model.client.Remark; +import seedu.address.model.status.Status; +import seedu.address.model.tier.Tier; + +/** + * A utility class to help with building EditClientDescriptor objects. + */ +public class EditClientDescriptorBuilder { + + private EditClientDescriptor descriptor; + + public EditClientDescriptorBuilder() { + descriptor = new EditClientDescriptor(); + } + + public EditClientDescriptorBuilder(EditClientDescriptor descriptor) { + this.descriptor = new EditClientDescriptor(descriptor); + } + + /** + * Returns an {@code EditClientDescriptor} with fields containing {@code client}'s details + */ + public EditClientDescriptorBuilder(Client client) { + descriptor = new EditClientDescriptor(); + descriptor.setName(client.getName()); + descriptor.setPhone(client.getPhone()); + descriptor.setEmail(client.getEmail()); + descriptor.setAddress(client.getAddress()); + descriptor.setJob(client.getJob()); + descriptor.setIncome(client.getIncome()); + descriptor.setTier(client.getTier()); + descriptor.setNewRemark(client.getRemark()); + } + + /** + * Sets the {@code Name} of the {@code EditClientDescriptor} that we are building. + */ + public EditClientDescriptorBuilder withName(String name) { + descriptor.setName(new Name(name)); + return this; + } + + /** + * Sets the {@code Phone} of the {@code EditClientDescriptor} that we are building. + */ + public EditClientDescriptorBuilder withPhone(String phone) { + descriptor.setPhone(new Phone(phone)); + return this; + } + + /** + * Sets the {@code Email} of the {@code EditClientDescriptor} that we are building. + */ + public EditClientDescriptorBuilder withEmail(String email) { + descriptor.setEmail(new Email(email)); + return this; + } + + /** + * Sets the {@code Address} of the {@code EditClientDescriptor} that we are building. + */ + public EditClientDescriptorBuilder withAddress(String address) { + descriptor.setAddress(new Address(address)); + return this; + } + /** + * Sets the {@code Job} of the {@code EditClientDescriptor} that we are building. + */ + public EditClientDescriptorBuilder withJob(String job) { + descriptor.setJob(new Job(job)); + return this; + } + + /** + * Sets the {@code Income} of the {@code EditClientDescriptor} that we are building. + */ + public EditClientDescriptorBuilder withIncome(int income) { + descriptor.setIncome(new Income(income)); + return this; + } + /** + * Parses the {@code tier} into a {@code Set} and set it to the {@code EditClientDescriptor} + * that we are building. + */ + public EditClientDescriptorBuilder withTier(String tier) { + descriptor.setTier(new Tier(tier)); + return this; + } + + /** + * Sets the {@code remark} of the {@code EditClientDescriptor} that we are building. + */ + public EditClientDescriptorBuilder withNewRemark(String remark) { + descriptor.setNewRemark(new Remark(remark)); + return this; + } + + /** + * Sets the {@code appendedRemark} of the {@code EditClientDescriptor} that we are building. + */ + public EditClientDescriptorBuilder withAppendedRemark(String remark) { + descriptor.setAppendedRemark(new Remark(remark)); + return this; + } + + /** + * Sets the {@code status} of the {@code EditClientDescriptor} that we are building. + */ + public EditClientDescriptorBuilder withStatus(String status) { + descriptor.setStatus(new Status(status)); + return this; + } + + public EditClientDescriptor build() { + return descriptor; + } +} diff --git a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java b/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java deleted file mode 100644 index 4c2f36b0049..00000000000 --- a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java +++ /dev/null @@ -1,127 +0,0 @@ -package seedu.address.testutil; - -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Income; -import seedu.address.model.person.Job; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.person.Remark; -import seedu.address.model.status.Status; -import seedu.address.model.tier.Tier; - -/** - * A utility class to help with building EditPersonDescriptor objects. - */ -public class EditPersonDescriptorBuilder { - - private EditPersonDescriptor descriptor; - - public EditPersonDescriptorBuilder() { - descriptor = new EditPersonDescriptor(); - } - - public EditPersonDescriptorBuilder(EditPersonDescriptor descriptor) { - this.descriptor = new EditPersonDescriptor(descriptor); - } - - /** - * Returns an {@code EditPersonDescriptor} with fields containing {@code person}'s details - */ - public EditPersonDescriptorBuilder(Person person) { - descriptor = new EditPersonDescriptor(); - descriptor.setName(person.getName()); - descriptor.setPhone(person.getPhone()); - descriptor.setEmail(person.getEmail()); - descriptor.setAddress(person.getAddress()); - descriptor.setJob(person.getJob()); - descriptor.setIncome(person.getIncome()); - descriptor.setTier(person.getTier()); - descriptor.setNewRemark(person.getRemark()); - } - - /** - * Sets the {@code Name} of the {@code EditPersonDescriptor} that we are building. - */ - public EditPersonDescriptorBuilder withName(String name) { - descriptor.setName(new Name(name)); - return this; - } - - /** - * Sets the {@code Phone} of the {@code EditPersonDescriptor} that we are building. - */ - public EditPersonDescriptorBuilder withPhone(String phone) { - descriptor.setPhone(new Phone(phone)); - return this; - } - - /** - * Sets the {@code Email} of the {@code EditPersonDescriptor} that we are building. - */ - public EditPersonDescriptorBuilder withEmail(String email) { - descriptor.setEmail(new Email(email)); - return this; - } - - /** - * Sets the {@code Address} of the {@code EditPersonDescriptor} that we are building. - */ - public EditPersonDescriptorBuilder withAddress(String address) { - descriptor.setAddress(new Address(address)); - return this; - } - /** - * Sets the {@code Job} of the {@code EditPersonDescriptor} that we are building. - */ - public EditPersonDescriptorBuilder withJob(String job) { - descriptor.setJob(new Job(job)); - return this; - } - - /** - * Sets the {@code Income} of the {@code EditPersonDescriptor} that we are building. - */ - public EditPersonDescriptorBuilder withIncome(int income) { - descriptor.setIncome(new Income(income)); - return this; - } - /** - * Parses the {@code tier} into a {@code Set} and set it to the {@code EditPersonDescriptor} - * that we are building. - */ - public EditPersonDescriptorBuilder withTier(String tier) { - descriptor.setTier(new Tier(tier)); - return this; - } - - /** - * Sets the {@code remark} of the {@code EditPersonDescriptor} that we are building. - */ - public EditPersonDescriptorBuilder withNewRemark(String remark) { - descriptor.setNewRemark(new Remark(remark)); - return this; - } - - /** - * Sets the {@code appendedRemark} of the {@code EditPersonDescriptor} that we are building. - */ - public EditPersonDescriptorBuilder withAppendedRemark(String remark) { - descriptor.setAppendedRemark(new Remark(remark)); - return this; - } - - /** - * Sets the {@code status} of the {@code EditPersonDescriptor} that we are building. - */ - public EditPersonDescriptorBuilder withStatus(String status) { - descriptor.setStatus(new Status(status)); - return this; - } - - public EditPersonDescriptor build() { - return descriptor; - } -} diff --git a/src/test/java/seedu/address/testutil/TestUtil.java b/src/test/java/seedu/address/testutil/TestUtil.java index 896d103eb0b..c76be011530 100644 --- a/src/test/java/seedu/address/testutil/TestUtil.java +++ b/src/test/java/seedu/address/testutil/TestUtil.java @@ -7,7 +7,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.model.Model; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** * A utility class for test cases. @@ -33,23 +33,23 @@ public static Path getFilePathInSandboxFolder(String fileName) { } /** - * Returns the middle index of the person in the {@code model}'s person list. + * Returns the middle index of the client in the {@code model}'s client list. */ public static Index getMidIndex(Model model) { - return Index.fromOneBased(model.getFilteredPersonList().size() / 2); + return Index.fromOneBased(model.getFilteredClientList().size() / 2); } /** - * Returns the last index of the person in the {@code model}'s person list. + * Returns the last index of the client in the {@code model}'s client list. */ public static Index getLastIndex(Model model) { - return Index.fromOneBased(model.getFilteredPersonList().size()); + return Index.fromOneBased(model.getFilteredClientList().size()); } /** - * Returns the person in the {@code model}'s person list at {@code index}. + * Returns the client in the {@code model}'s client list at {@code index}. */ - public static Person getPerson(Model model, Index index) { - return model.getFilteredPersonList().get(index.getZeroBased()); + public static Client getClient(Model model, Index index) { + return model.getFilteredClientList().get(index.getZeroBased()); } } diff --git a/src/test/java/seedu/address/testutil/TypicalPersons.java b/src/test/java/seedu/address/testutil/TypicalClients.java similarity index 75% rename from src/test/java/seedu/address/testutil/TypicalPersons.java rename to src/test/java/seedu/address/testutil/TypicalClients.java index 42c13887170..cf0ac0dba81 100644 --- a/src/test/java/seedu/address/testutil/TypicalPersons.java +++ b/src/test/java/seedu/address/testutil/TypicalClients.java @@ -16,81 +16,81 @@ import seedu.address.logic.commands.CommandCommons; import seedu.address.model.AgentAssist; -import seedu.address.model.person.Person; +import seedu.address.model.client.Client; /** - * A utility class containing a list of {@code Person} objects to be used in tests. + * A utility class containing a list of {@code Client} objects to be used in tests. */ -public class TypicalPersons { +public class TypicalClients { - public static final Person ALICE = new PersonBuilder().withName("Alice Pauline") + public static final Client ALICE = new ClientBuilder().withName("Alice Pauline") .withAddress("123, Jurong West Ave 6, #08-111").withEmail("alice@example.com") .withPhone("94351253").withJob("Engineer") .withIncome(3) .withTier("GOLD").withRemark("She is stingy").build(); - public static final Person BENSON = new PersonBuilder().withName("Benson Meier") + public static final Client BENSON = new ClientBuilder().withName("Benson Meier") .withAddress("311, Clementi Ave 2, #02-25") .withIncome(40).withJob("Doctor") .withEmail("johnd@example.com").withPhone("98765432") .withTier("Bronze").withRemark("He is rich").build(); - public static final Person CARL = new PersonBuilder().withName("Carl Kurz").withPhone("95352563") + public static final Client CARL = new ClientBuilder().withName("Carl Kurz").withPhone("95352563") .withEmail("heinz@example.com").withAddress("wall street").withJob("Lawyer") .withIncome(40) .withRemark(CommandCommons.DEFAULT_REMARK).build(); - public static final Person DANIEL = new PersonBuilder().withName("Daniel Meier").withPhone("87652533") + public static final Client DANIEL = new ClientBuilder().withName("Daniel Meier").withPhone("87652533") .withEmail("cornelia@example.com").withAddress("10th street").withJob("Artist") .withIncome(30) .withTier("REJECT") .withRemark(CommandCommons.DEFAULT_REMARK).build(); - public static final Person ELLE = new PersonBuilder().withName("Elle Meyer").withPhone("94822240") + public static final Client ELLE = new ClientBuilder().withName("Elle Meyer").withPhone("94822240") .withEmail("werner@example.com").withAddress("michegan ave").withJob("Nurse") .withIncome(20) .withRemark(CommandCommons.DEFAULT_REMARK).build(); - public static final Person FIONA = new PersonBuilder().withName("Fiona Kunz").withPhone("94824271") + public static final Client FIONA = new ClientBuilder().withName("Fiona Kunz").withPhone("94824271") .withEmail("lydia@example.com").withAddress("little tokyo").withJob("Chef") .withIncome(45) - .withRemark("Rich japanese person").build(); - public static final Person GEORGE = new PersonBuilder().withName("George Best").withPhone("94823442") + .withRemark("Rich japanese client").build(); + public static final Client GEORGE = new ClientBuilder().withName("George Best").withPhone("94823442") .withEmail("anna@example.com").withAddress("4th street").withJob("Teacher") .withIncome(50) .withRemark(CommandCommons.DEFAULT_REMARK).build(); // Manually added - public static final Person HOON = new PersonBuilder().withName("Hoon Meier").withPhone("84824234") + public static final Client HOON = new ClientBuilder().withName("Hoon Meier").withPhone("84824234") .withEmail("stefan@example.com").withAddress("little india").withJob("Architect") .withIncome(40) .withRemark(CommandCommons.DEFAULT_REMARK).build(); - public static final Person IDA = new PersonBuilder().withName("Ida Mueller").withPhone("84822131") + public static final Client IDA = new ClientBuilder().withName("Ida Mueller").withPhone("84822131") .withEmail("hans@example.com").withAddress("chicago ave").withJob("Writer") .withIncome(50) .withRemark(CommandCommons.DEFAULT_REMARK).build(); - // Manually added - Person's details found in {@code CommandTestUtil} - public static final Person AMY = new PersonBuilder().withName(VALID_NAME_AMY).withPhone(VALID_PHONE_AMY) + // Manually added - Client's details found in {@code CommandTestUtil} + public static final Client AMY = new ClientBuilder().withName(VALID_NAME_AMY).withPhone(VALID_PHONE_AMY) .withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY) .withJob("Teacher") .withIncome(999999999) .withTier(VALID_TIER_REJECT) .withRemark(CommandCommons.DEFAULT_REMARK).build(); - public static final Person BOB = new PersonBuilder().withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) + public static final Client BOB = new ClientBuilder().withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) .withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB).withJob("Developer") .withIncome(9) .withTier(VALID_TIER_REJECT) .withRemark(CommandCommons.DEFAULT_REMARK).build(); - private TypicalPersons() {} // prevents instantiation + private TypicalClients() {} // prevents instantiation /** - * Returns an {@code AgentAssist} with all the typical persons. + * Returns an {@code AgentAssist} with all the typical clients. */ public static AgentAssist getTypicalAgentAssist() { AgentAssist ab = new AgentAssist(); - for (Person person : getTypicalPersons()) { - ab.addPerson(person); + for (Client client : getTypicalClients()) { + ab.addClient(client); } return ab; } - public static List getTypicalPersons() { + public static List getTypicalClients() { return new ArrayList<>(Arrays.asList(ALICE, BENSON, CARL, DANIEL, ELLE, FIONA, GEORGE)); } diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/seedu/address/testutil/TypicalIndexes.java index 1e613937657..a789d611737 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/seedu/address/testutil/TypicalIndexes.java @@ -6,7 +6,7 @@ * A utility class containing a list of {@code Index} objects to be used in tests. */ public class TypicalIndexes { - public static final Index INDEX_FIRST_PERSON = Index.fromOneBased(1); - public static final Index INDEX_SECOND_PERSON = Index.fromOneBased(2); - public static final Index INDEX_THIRD_PERSON = Index.fromOneBased(3); + public static final Index INDEX_FIRST_CLIENT = Index.fromOneBased(1); + public static final Index INDEX_SECOND_CLIENT = Index.fromOneBased(2); + public static final Index INDEX_THIRD_CLIENT = Index.fromOneBased(3); } From 0af6aa9fe8cd3ebb96b6a0ab0b2ac9482eaf243c Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sun, 3 Nov 2024 00:01:41 +0800 Subject: [PATCH 30/36] Update images of PUML diagrams in DG --- docs/DeveloperGuide.md | 2 +- docs/images/ArchitectureSequenceDiagram.png | Bin 41604 -> 19027 bytes docs/images/DeleteSequenceDiagram.png | Bin 83068 -> 34278 bytes docs/images/ModelClassDiagram.png | Bin 107362 -> 45588 bytes docs/images/StorageClassDiagram.png | Bin 105744 -> 43591 bytes docs/images/UiClassDiagram.png | Bin 48363 -> 64846 bytes 6 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index da92f74b884..98546a0e94a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -418,7 +418,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * **CLI (Command Line Interface)**: A text-based interface where users interact with the app by typing commands instead of using a graphical interface (mouse-driven). * **Banking Agent**: A user of the system responsible for selling credit cards to clients. * **Contact**: A record in the AgentAssist system that contains cliental and financial details of a client. -* **Client**: An individual whose information is managed within the AgentAssist system. This person may be a prospective or existing customer of the banking agent, expressing interest in or currently using credit card services. +* **Client**: An individual whose information is managed within the AgentAssist system. This client may be a prospective or existing customer of the banking agent, expressing interest in or currently using credit card services. -------------------------------------------------------------------------------------------------------------------- ## **Appendix: Instructions for manual testing** diff --git a/docs/images/ArchitectureSequenceDiagram.png b/docs/images/ArchitectureSequenceDiagram.png index 7c3052ce47cc154d02c82d1e8acac52e0acba26b..41e8550cc1e63833182caf2991a877573a21c006 100644 GIT binary patch literal 19027 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 A{r~^~ literal 41604 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 qw<)wCM#3An{=|qqmq;hnrSvYn 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

    GxWjGTp> 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 z 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 diff --git a/docs/images/StorageClassDiagram.png b/docs/images/StorageClassDiagram.png index df93bbb3ac311f81ec9c46b42dcdd7aabb3e2c64..ee3f2af099ac70c57c09bdd54c76600347f5c3c7 100644 GIT binary patch literal 43591 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 E7s)phO#lD@ literal 105744 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ኈusdtT>9t9m!?Z+}t#D?@gAz-lpO; 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%0Am{-n9VGOd4>@hioPv{XB4W9@gkN7Rv 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%0ALhk_NV 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%0AU<%CCb$Kz_>fQ}>qNnZbH) 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 diff --git a/docs/images/UiClassDiagram.png b/docs/images/UiClassDiagram.png index 11f06d686714cf02d88c4b32879bb71b11f56e13..80d1aead9b63345786b5e60625f0e0c0726fc7b3 100644 GIT binary patch literal 64846 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�GZ`arOK6umt#C}?YQGmgUuZ8t6` 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 literal 48363 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 From 7cfbec436c6c7671899d84e72b157a4df2492b3c Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sun, 3 Nov 2024 00:18:45 +0800 Subject: [PATCH 31/36] Fix checkstyleMain --- src/main/java/seedu/address/logic/commands/EditCommand.java | 2 +- src/main/java/seedu/address/model/client/Client.java | 4 ++-- .../java/seedu/address/model/client/UniqueClientList.java | 2 +- src/main/java/seedu/address/ui/ClientDetailPanel.java | 2 +- src/main/java/seedu/address/ui/ClientListPanel.java | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index a700a8a94d8..a8abe6fa36c 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -105,7 +105,7 @@ public CommandResult execute(Model model) throws CommandException { * edited with {@code editClientDescriptor}. */ private static Client createEditedClient(Client clientToEdit, EditClientDescriptor editClientDescriptor) { - assert clientToEdit!= null; + assert clientToEdit != null; Name updatedName = editClientDescriptor.getName().orElse(clientToEdit.getName()); Phone updatedPhone = editClientDescriptor.getPhone().orElse(clientToEdit.getPhone()); diff --git a/src/main/java/seedu/address/model/client/Client.java b/src/main/java/seedu/address/model/client/Client.java index 17b658806f3..158d84aff86 100644 --- a/src/main/java/seedu/address/model/client/Client.java +++ b/src/main/java/seedu/address/model/client/Client.java @@ -85,11 +85,11 @@ public Remark getRemark() { * This defines a weaker notion of equality between two clients. */ public boolean isSameClient(Client otherClient) { - if (otherClient== this) { + if (otherClient == this) { return true; } - return otherClient!= null + return otherClient != null && otherClient.getName().equals(getName()) && otherClient.getPhone().equals(getPhone()) && otherClient.getEmail().equals(getEmail()); diff --git a/src/main/java/seedu/address/model/client/UniqueClientList.java b/src/main/java/seedu/address/model/client/UniqueClientList.java index ab3639c32b4..1ff60ea30f7 100644 --- a/src/main/java/seedu/address/model/client/UniqueClientList.java +++ b/src/main/java/seedu/address/model/client/UniqueClientList.java @@ -8,8 +8,8 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import seedu.address.model.client.exceptions.DuplicateClientException; import seedu.address.model.client.exceptions.ClientNotFoundException; +import seedu.address.model.client.exceptions.DuplicateClientException; /** * A list of clients that enforces uniqueness between its elements and does not allow nulls. diff --git a/src/main/java/seedu/address/ui/ClientDetailPanel.java b/src/main/java/seedu/address/ui/ClientDetailPanel.java index 16f7e0126c1..6f2957daf04 100644 --- a/src/main/java/seedu/address/ui/ClientDetailPanel.java +++ b/src/main/java/seedu/address/ui/ClientDetailPanel.java @@ -94,7 +94,7 @@ private void setManagedAndVisible(javafx.scene.Node node, boolean value) { * @param client The client whose details should be displayed, can be null */ public void setClientDetails(Client client) { - if (client!= null) { + if (client != null) { showAllFields(); setLabelText(nameLabel, client.getName().fullName); setLabelText(phoneLabel, client.getPhone().value); diff --git a/src/main/java/seedu/address/ui/ClientListPanel.java b/src/main/java/seedu/address/ui/ClientListPanel.java index 4d91c38159a..be7684f3d31 100644 --- a/src/main/java/seedu/address/ui/ClientListPanel.java +++ b/src/main/java/seedu/address/ui/ClientListPanel.java @@ -41,7 +41,7 @@ class ClientListViewCell extends ListCell { protected void updateItem(Client client, boolean empty) { super.updateItem(client, empty); - if (empty || client== null) { + if (empty || client == null) { setGraphic(null); setText(null); } else { From 94294870522b1fb12833bca9b613e50a60e7ea29 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sun, 3 Nov 2024 00:25:15 +0800 Subject: [PATCH 32/36] Fix checkstyleTest --- .../java/seedu/address/logic/commands/DeleteCommandTest.java | 2 +- .../java/seedu/address/logic/commands/EditCommandTest.java | 2 +- .../java/seedu/address/logic/commands/ListCommandTest.java | 2 +- .../java/seedu/address/logic/commands/UndoCommandTest.java | 4 ++-- .../java/seedu/address/logic/commands/ViewCommandTest.java | 2 +- .../seedu/address/logic/parser/AgentAssistParserTest.java | 2 +- .../java/seedu/address/model/client/UniqueClientListTest.java | 2 +- .../seedu/address/testutil/EditClientDescriptorBuilder.java | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java index 837fe953c57..a38c5a7c1e0 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java @@ -6,9 +6,9 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showClientAtIndex; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_CLIENT; -import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/seedu/address/logic/commands/EditCommandTest.java index fb7850d230a..17a228343d6 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditCommandTest.java @@ -11,9 +11,9 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showClientAtIndex; +import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_CLIENT; -import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/logic/commands/ListCommandTest.java b/src/test/java/seedu/address/logic/commands/ListCommandTest.java index 2d7f180c225..68f1dd1a3ca 100644 --- a/src/test/java/seedu/address/logic/commands/ListCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ListCommandTest.java @@ -2,8 +2,8 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showClientAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/logic/commands/UndoCommandTest.java b/src/test/java/seedu/address/logic/commands/UndoCommandTest.java index 1b869768eb9..ab87b039910 100644 --- a/src/test/java/seedu/address/logic/commands/UndoCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/UndoCommandTest.java @@ -2,8 +2,8 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import org.junit.jupiter.api.Test; @@ -12,8 +12,8 @@ import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; import seedu.address.model.client.Client; -import seedu.address.testutil.EditClientDescriptorBuilder; import seedu.address.testutil.ClientBuilder; +import seedu.address.testutil.EditClientDescriptorBuilder; public class UndoCommandTest { diff --git a/src/test/java/seedu/address/logic/commands/ViewCommandTest.java b/src/test/java/seedu/address/logic/commands/ViewCommandTest.java index 196ba79eb59..cb874cb5ec0 100644 --- a/src/test/java/seedu/address/logic/commands/ViewCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ViewCommandTest.java @@ -5,8 +5,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.Messages.MESSAGE_INVALID_CLIENT_DISPLAYED_INDEX; import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import static seedu.address.testutil.TypicalClients.getTypicalAgentAssist; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_CLIENT; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/logic/parser/AgentAssistParserTest.java b/src/test/java/seedu/address/logic/parser/AgentAssistParserTest.java index fd26b7d35a4..db1924afdec 100644 --- a/src/test/java/seedu/address/logic/parser/AgentAssistParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AgentAssistParserTest.java @@ -26,9 +26,9 @@ import seedu.address.model.client.Client; import seedu.address.model.client.predicates.CombinedPredicate; import seedu.address.model.client.predicates.NameContainsSubstringPredicate; -import seedu.address.testutil.EditClientDescriptorBuilder; import seedu.address.testutil.ClientBuilder; import seedu.address.testutil.ClientUtil; +import seedu.address.testutil.EditClientDescriptorBuilder; public class AgentAssistParserTest { diff --git a/src/test/java/seedu/address/model/client/UniqueClientListTest.java b/src/test/java/seedu/address/model/client/UniqueClientListTest.java index 95ec937d2ca..3d2e3bef400 100644 --- a/src/test/java/seedu/address/model/client/UniqueClientListTest.java +++ b/src/test/java/seedu/address/model/client/UniqueClientListTest.java @@ -15,8 +15,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.model.client.exceptions.DuplicateClientException; import seedu.address.model.client.exceptions.ClientNotFoundException; +import seedu.address.model.client.exceptions.DuplicateClientException; import seedu.address.testutil.ClientBuilder; public class UniqueClientListTest { diff --git a/src/test/java/seedu/address/testutil/EditClientDescriptorBuilder.java b/src/test/java/seedu/address/testutil/EditClientDescriptorBuilder.java index 32881ff6dab..d2fa024b49b 100644 --- a/src/test/java/seedu/address/testutil/EditClientDescriptorBuilder.java +++ b/src/test/java/seedu/address/testutil/EditClientDescriptorBuilder.java @@ -2,11 +2,11 @@ import seedu.address.logic.commands.EditCommand.EditClientDescriptor; import seedu.address.model.client.Address; +import seedu.address.model.client.Client; import seedu.address.model.client.Email; import seedu.address.model.client.Income; import seedu.address.model.client.Job; import seedu.address.model.client.Name; -import seedu.address.model.client.Client; import seedu.address.model.client.Phone; import seedu.address.model.client.Remark; import seedu.address.model.status.Status; From f2e5327f3e062cee14bcc946026bb365ef36ba24 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sun, 3 Nov 2024 00:33:08 +0800 Subject: [PATCH 33/36] Refactor person to client in AddCommand --- src/main/java/seedu/address/logic/commands/AddCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/AddCommand.java b/src/main/java/seedu/address/logic/commands/AddCommand.java index f74fd15328b..a5be20101a0 100644 --- a/src/main/java/seedu/address/logic/commands/AddCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddCommand.java @@ -26,7 +26,7 @@ public class AddCommand extends Command { public static final String MISSING_PREFIX_MESSAGE_START = "The following mandatory prefixes are missing: "; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a person to the address book. " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a client to the address book. " + "Parameters: " + PREFIX_NAME + "NAME " + PREFIX_PHONE + "PHONE " From c298c2bcbbbb7e1752924073099c73c1dd25a113 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Sun, 3 Nov 2024 00:34:33 +0800 Subject: [PATCH 34/36] Rename JsonAdaptedPerson to JsonAdaptedClient --- .../storage/{JsonAdaptedPerson.java => JsonAdaptedClient.java} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/main/java/seedu/address/storage/{JsonAdaptedPerson.java => JsonAdaptedClient.java} (100%) diff --git a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java b/src/main/java/seedu/address/storage/JsonAdaptedClient.java similarity index 100% rename from src/main/java/seedu/address/storage/JsonAdaptedPerson.java rename to src/main/java/seedu/address/storage/JsonAdaptedClient.java From f8e085f5ab95813822ba3cce996148eb821103ba Mon Sep 17 00:00:00 2001 From: Zheng Shun Ren <107254834+ZShunRen@users.noreply.github.com> Date: Sun, 3 Nov 2024 00:58:19 +0800 Subject: [PATCH 35/36] Update src/main/java/seedu/address/model/client/exceptions/DuplicateClientException.java --- .../model/client/exceptions/DuplicateClientException.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/model/client/exceptions/DuplicateClientException.java b/src/main/java/seedu/address/model/client/exceptions/DuplicateClientException.java index ef4e36ea4aa..6bbd733740b 100644 --- a/src/main/java/seedu/address/model/client/exceptions/DuplicateClientException.java +++ b/src/main/java/seedu/address/model/client/exceptions/DuplicateClientException.java @@ -1,7 +1,7 @@ package seedu.address.model.client.exceptions; /** - * Signals that the operation will result in duplicate Clients (Clients are considered duplicates if they have the same + * Signals that the operation will result in duplicate clients (Clients are considered duplicates if they have the same * identity). */ public class DuplicateClientException extends RuntimeException { From fcc40e1253ad43e05ff0f268c1d66860309a616b Mon Sep 17 00:00:00 2001 From: Zheng Shun Ren <107254834+ZShunRen@users.noreply.github.com> Date: Sun, 3 Nov 2024 00:58:27 +0800 Subject: [PATCH 36/36] Update src/main/java/seedu/address/logic/commands/FilterCommand.java --- src/main/java/seedu/address/logic/commands/FilterCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/FilterCommand.java b/src/main/java/seedu/address/logic/commands/FilterCommand.java index 0fd49810044..96797a546e5 100644 --- a/src/main/java/seedu/address/logic/commands/FilterCommand.java +++ b/src/main/java/seedu/address/logic/commands/FilterCommand.java @@ -22,7 +22,7 @@ public class FilterCommand extends Command { + "Parameters: / \n" + "Flags: n/ NAME, p/ PHONE, e/ EMAIL, a/ ADDRESS, j/ JOB, r/ REMARK\n" + "Example: '" + COMMAND_WORD + " n/ Alice" + " p/ 91112222'\n" - + "This will find all customers whose names contain 'Alice' and whose phone number is '91112222'."; + + "This will find all clients whose names contain 'Alice' and whose phone number is '91112222'."; private final Predicate predicate;