At the end of this specific task, students should be able to:

• Handle and manipulate strings
• Create and work with Arrays
You will now add the final features to your app , write and automate the unit tests and submit
your final project. Extend your application to allow for the following:
1. Users should be able to use to populate the following arrays:
Array Contents
Developer Contains the names of all the developers
assigned to tasks
Task Names Contains the names of all the created tasks
Task ID Contains the generated taskID’s for all tasks
Task Duration Contains the Duration of all tasks
Task Status Contains the Status of all tasks
21; 22; 23 2023
© The Independent Institute of Education (Pty) Ltd 2023 Page 14 of 22
2. Users should be able to use these arrays to:
a. Display the Developer, Task Names and Task Duration for all tasks with the status of
done.
b. Display the Developer and Duration of the class with the longest duration.
c. Search for a task with a Task Name and display the Task Name, Developer and Task
Status.
d. Search for all tasks assigned to a developer and display the Task Name and Task
Status.
e. Delete a task using the Task Name.
f. Display a report that lists the full details of all captured tasks.
3. Use the following test Data for your unit tests and to populate your arrays:
Test Data Task 1
Developer Mike Smith
Task Name Create Login
Task Duration 5
Task Status To Do
Test Data Task 2
Developer Edward Harrison
Task Name Create Add Features
Task Duration 8
Task Status Doing
Test Data Task 3
Developer Samantha Paulson
Task Name Create Reports
Task Duration 2
Task Status Done
21; 22; 23 2023
© The Independent Institute of Education (Pty) Ltd 2023 Page 15 of 22
Test Data Task 4
Developer Glenda Oberholzer
Task Name Add Arrays
Task Duration 11
Task Status To Do
4. Create the following unit tests:
Test: (assertEquals) Test Data and expected system responses.
Developer array correctly populated:
The developer array contains the expected
test data.
Test Data: Developer entry for Test data for
tasks 1-4
The system returns:
"Mike Smith", "Edward Harrington"
, "Samantha Paulson", "Glenda Oberholzer"
Display Developer and Duration for task with
longest duration.
Test Data: Task 1-4
The system returns:
“Glenda Oberholzer, 11;
Search for tasks Test Data: “Create Login
The system returns:
“ Mike Smith, Create Login”
Search all tasks assigned to Developer Test Data: Samantha Paulson
The system returns:
Create Reports
Delete Task from array Test Data: "Create Reports"
The system returns:
Entry “Create reports” successfully deleted
Display Report
The system returns:

A list with all the captured tasks, including the developer, task name, task duration, and task status.

To add the final features to your app and automate the unit tests, follow these steps:

Step 1: Populating arrays
- Create the following arrays:
- Developer: Contains the names of all the developers assigned to tasks.
- Task Names: Contains the names of all the created tasks.
- Task ID: Contains the generated taskIDs for all tasks.
- Task Duration: Contains the Duration of all tasks.
- Task Status: Contains the Status of all tasks.

Step 2: Display tasks with the status of "done"
- Iterate through the arrays and check the Task Status.
- If the Task Status is "done", display the Developer, Task Names, and Task Duration for that task.

Step 3: Display the developer and duration of the task with the longest duration
- Iterate through the Task Duration array and find the maximum duration.
- Get the index of the task with the maximum duration.
- Display the Developer and Duration at that index.

Step 4: Search for a task with a Task Name and display the Task Name, Developer, and Task Status
- Prompt the user to enter a Task Name to search for.
- Iterate through the Task Names array and compare each task name with the searched Task Name.
- If a match is found, display the Task Name, Developer, and Task Status for that task.

Step 5: Search for all tasks assigned to a developer and display the Task Name and Task Status
- Prompt the user to enter a Developer Name to search for.
- Iterate through the Developer array and compare each developer name with the searched Developer Name.
- If a match is found, display the Task Name and Task Status for that task.

Step 6: Delete a task using the Task Name
- Prompt the user to enter a Task Name to delete.
- Iterate through the Task Names array and compare each task name with the Task Name to be deleted.
- If a match is found, delete the corresponding entries from the arrays and display a success message.

Step 7: Display a report that lists the full details of all captured tasks
- Iterate through all the arrays and display the full details of each task.

Step 8: Write unit tests
- Create unit tests to validate the functionality of each feature.
- Use the provided Test Data and expected system responses mentioned above.
- Use the assertEquals method to compare the actual results with the expected results.

Step 9: Automate the unit tests
- Write code to automate the execution of the unit tests.
- Run the unit tests and ensure that they pass without any failures.

Step 10: Submit your final project
- Finalize your project by cleaning up the code and ensuring everything is working as expected.
- Prepare your project for submission.
- Submit your final project.