· A user shall be able to create either a task list or a contact list · A task list shall contain 1 or more task items · An task item shall contain a title · A title shall be 1 or more characters in...

I need to help on this assignment please


· A user shall be able to create either a task list or a contact list · A task list shall contain 1 or more task items · An task item shall contain a title · A title shall be 1 or more characters in length · An task item shall contain a description · A description shall be 0 or more characters in length · An task item shall contain a due date · A due date shall be in the format of YYYY-MM-DD · A user shall be able to create a new task list · A user shall be able to load an existing task list · A user shall be able to view the current task list · A user shall be able to save the current task list · A user shall be able to add an item to the current task list · A user shall be able to edit an item in the current task list · A user shall be able to remove an item from the current task list · A user shall be able to mark an item in the current task list as completed · A user shall be able to unmark an item in the current task list as completed · A contact list shall contain 1 or more contact items · A contact item shall contain a first name · A contact item shall contain a last name · A contact item shall contain a phone number · A contact item shall contain an email address · A contact item shall contain at least one of [first name], [last name], [phone number], or [email address] · A user shall be able to create a new contact list · A user shall be able to load an existing contact list · A user shall be able to view the current contact list · A user shall be able to save the current contact list · A user shall be able to add a contact to the current contact list · A user shall be able to edit a contact in the current contact list · A user shall be able to remove a contact from the current contact list   As part of this application, you must decide how to store your data both internally (in RAM) and externally (on the hard drive). Your solution must contain (at a minimum) the following classes: ContactApp, ContactItem, ContactList, TaskApp, TaskList, TaskItem, ContactItemTest, ContactListTest, TaskItemTest, and TaskListTest. Files ending with "Test" must contain JUnit tests for the corresponding public classes. You must test both expected successes and expected failures, such as trying to remove or change part of an item that doesn't exist.   An (incomplete) list of example tests that you may need to write include: ContactItemTest =============== creationFailsWithAllBlankValues() creationSucceedsWithBlankEmail() creationSucceedsWithBlankFirstName() creationSucceedsWithBlankLastName() creationSucceedsWithBlankPhone() creationSucceedsWithNonBlankValues() editingFailsWithAllBlankValues() editingSucceedsWithBlankEmail() editingSucceedsWithBlankFirstName() editingSucceedsWithBlankLastName() editingSucceedsWithBlankPhone() editingSucceedsWithNonBlankValues() testToString() ContactListTest =============== addingItemsIncreasesSize() editingItemsFailsWithAllBlankValues() editingItemsFailsWithInvalidIndex() editingSucceedsWithBlankFirstName() editingSucceedsWithBlankLastName() editingSucceedsWithBlankPhone() editingSucceedsWithNonBlankValues() newListIsEmpty() removingItemsDecreasesSize() removingItemsFailsWithInvalidIndex() savedContactListCanBeLoaded() TaskItemTest ============ constructorFailsWithInvalidDueDate() constructorFailsWithInvalidTitle() constructorSucceedsWithValidDueDate() constructorSucceedsWithValidTitle() editingDescriptionSucceedsWithExpectedValue() editingDueDateFailsWithInvalidDateFormat() editingDueDateFailsWithInvalidYYYMMDD() editingDueDateSucceedsWithExpectedValue() editingTitleFailsWithEmptyString() editingTitleSucceedsWithExpectedValue() TaskListTest ============ addingItemsIncreasesSize() completingTaskItemChangesStatus() completingTaskItemFailsWithInvalidIndex() editingItemDescriptionFailsWithInvalidIndex() editingItemDescriptionSucceedsWithExpectedValue() editingItemDueDateSucceedsWithExpectedValue() editingItemTitleFailsWithEmptyString() editingItemTitleFailsWithInvalidIndex() editingItemTitleSucceedsWithExpectedValue() editingTaskItemDueDateFailsWithInvalidDateFormat() editingTaskItemDueDateFailsWithInvalidIndex() editingTaskItemDueDateFailsWithInvalidYYYMMDD() gettingItemDescriptionFailsWithInvalidIndex() gettingItemDescriptionSucceedsWithValidIndex() gettingItemDueDateFailsWithInvalidIndex() gettingItemDueDateSucceedsWithValidIndex() gettingItemTitleFailsWithInvalidIndex() gettingItemTitleSucceedsWithValidIndex() newListIsEmpty() removingItemsDecreasesSize() removingItemsFailsWithInvalidIndex() savedTaskListCanBeLoaded() uncompletingTaskItemChangesStatus() uncompletingTaskItemFailsWithInvalidIndex()   An example run of the final program (without input errors) should be similar to the following output. · You must handle input errors, including invalid titles, invalid due dates, and trying to access a task that doesn't exist. · You must also handle the case when there are no tasks to edit, remove, mark, unmark, or save. · None of these expected errors should crash the program. Select Your Application ----------------------- 1) task list 2) contact list 3) quit > 2 Main Menu --------- 1) create a new list 2) load an existing list 3) quit > 1 new contact list has been created List Operation Menu --------- 1) view the list 2) add an item 3) edit an item 4) remove an item 5) save the current list 6) quit to the main menu > 2 First name: John Last name: Doe Phone number (xxx-xxx-xxxx): 555-123-1234 Email address ([email protected]): [email protected] List Operation Menu --------- 1) view the list 2) add an item 3) edit an item 4) remove an item 5) save the current list 6) quit to the main menu > 2 First name: Davy Last name: Jones Phone number (xxx-xxx-xxxx): 123-456-1234 Email address ([email protected]): [email protected] List Operation Menu --------- 1) view the list 2) add an item 3) edit an item 4) remove an item 5) save the current list 6) quit to the main menu > 1 Current Contacts ------------- 0) Name: John Doe Phone: 555-123-1234 Email: [email protected] 1) Name: Davy Jones Phone: 123-456-1234 Email: [email protected] List Operation Menu --------- 1) view the list 2) add an item 3) edit an item 4) remove an item 5) save the current list 6) quit to the main menu > 3 Current Contacts ------------- 0) Name: John Doe Phone: 555-123-1234 Email: [email protected] 1) Name: Davy Jones Phone: 123-456-1234 Email: [email protected] Which contact will you edit? 1 Enter a new first name for contact 1: Davy Enter a new last name for contact 1: Jones Enter a new phone number (xxx-xxx-xxxx) for contact 1: 111-111-1111 Enter a new email address ([email protected]) for contact 1: [email protected] List Operation Menu --------- 1) view the list 2) add an item 3) edit an item 4) remove an item 5) save the current list 6) quit to the main menu > 1 Current Contacts ------------- 0) Name: John Doe Phone: 555-123-1234 Email: [email protected] 1) Name: Davy Jones Phone: 111-111-1111 Email: [email protected] List Operation Menu --------- 1) view the list 2) add an item 3) edit an item 4) remove an item 5) save the current list 6) quit to the main menu > 4 Current Contacts ------------- 0) Name: John Doe Phone: 555-123-1234 Email: [email protected] 1) Name: Davy Jones Phone: 111-111-1111 Email: [email protected] Which contact will you remove? 1 List Operation Menu --------- 1) view the list 2) add an item 3) edit an item 4) remove an item 5) save the current list 6) quit to the main menu > 6 Main Menu --------- 1) create a new list 2) load an existing list 3) quit > 2 Enter the filename to load: contacts.txt contact list has been loaded List Operation Menu --------- 1) view the list 2) add an item 3) edit an item 4) remove an item 5) save the current list 6) quit to the main menu > 1 Current Contacts ------------- 0) Name: Bob J Phone: 123-123-1234 Email: [email protected] List Operation Menu --------- 1) view the list 2) add an item 3) edit an item 4) remove an item 5) save the current list 6) quit to the main menu > 6 Main Menu --------- 1) create a new list 2) load an existing list 3) quit > 3 Select Your Application ----------------------- 1) task list 2) contact list 3) quit > 3 Process finished with exit code 0
Nov 19, 2021
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here