Skip to content

Commit

Permalink
Merge 2f5f2a2 into f4071a4
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucria committed Oct 15, 2019
2 parents f4071a4 + 2f5f2a2 commit 0d48ca6
Show file tree
Hide file tree
Showing 10 changed files with 137 additions and 16 deletions.
10 changes: 7 additions & 3 deletions src/main/java/controllers/AssignmentControllerUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ public class AssignmentControllerUtil {
*/
public static void manageAssignment(IProject projectToManage, String[] details,
CLIView consoleView) {
int taskNumber = Integer.parseInt(details[0].substring(2).trim());
int taskIndex = Integer.parseInt(details[0].substring(2).trim());
Task task = null;
if (taskNumber > projectToManage.getNumOfTasks() || taskNumber <= 0) {
if (taskIndex > projectToManage.getNumOfTasks() || taskIndex <= 0) {
consoleView.consolePrint("The task you wish to assign does not exist!",
"Please check the index number of the task and try again.");
} else {
task = projectToManage.getTask(taskNumber);
task = projectToManage.getTask(taskIndex);
HashSet<Integer> assignedIndexes = task.getAssignedIndexes(); //existing assignments
ArrayList<Integer> assign = new ArrayList<>(); //List of members to be assigned task
ArrayList<Integer> unassign = new ArrayList<>();//List of members to be unassigned task
Expand Down Expand Up @@ -66,4 +66,8 @@ public static void manageAssignment(IProject projectToManage, String[] details,
consoleView.assignOrUnassignTask(assign, unassign, task, projectToManage);
}
}

public static void viewTaskAssigned(IProject projectToManage, CLIView consoleView) {
consoleView.viewAssignedTask(projectToManage);
}
}
24 changes: 14 additions & 10 deletions src/main/java/controllers/ProjectInputController.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package controllers;

import java.text.ParseException;
import java.util.Scanner;
import models.data.IProject;
import repositories.ProjectRepository;
import util.factories.MemberFactoryUtil;
import util.factories.TaskFactory;
import views.CLIView;

import java.text.ParseException;
import java.util.Scanner;

public class ProjectInputController {
private Scanner manageProjectInput;
private ProjectRepository projectRepository;
Expand Down Expand Up @@ -48,15 +49,15 @@ public void manageProject(String input) {
consoleView.consolePrint("Failed to add member. Please ensure you have entered "
+ "at least the name of the new member.");
}
} else if (projectCommand.length() >= 11 && ("edit member ").equals(projectCommand.substring(0, 12))) {
} else if (projectCommand.length() >= 12 && ("edit member ").equals(projectCommand.substring(0, 12))) {
int memberIndexNumber = Integer.parseInt(projectCommand.substring(12).split(" ")[0]);
if (projectToManage.getNumOfMembers() >= memberIndexNumber) {
String updatedMemberDetails = projectCommand.substring(projectCommand.indexOf("n/"));
consoleView.editMember(projectToManage, memberIndexNumber, updatedMemberDetails);
} else {
consoleView.consolePrint("The member index entered is invalid.");
}
} else if (projectCommand.length() >= 13 && ("delete member ").equals(projectCommand.substring(0,14))) {
} else if (projectCommand.length() >= 14 && ("delete member ").equals(projectCommand.substring(0,14))) {
int memberIndexNumber = Integer.parseInt(projectCommand.substring(14).split(" ")[0]);
if (projectToManage.getNumOfMembers() >= memberIndexNumber) {
consoleView.removeMember(projectToManage, memberIndexNumber);
Expand All @@ -74,6 +75,8 @@ public void manageProject(String input) {
}
} else if (projectCommand.length() == 10 && ("view tasks").equals(projectCommand)) {
consoleView.viewAllTasks(projectToManage);
} else if (projectCommand.length() == 19 && ("view assigned tasks").equals(projectCommand)) {
AssignmentControllerUtil.viewTaskAssigned(projectToManage, consoleView);
} else if (projectCommand.length() > 25
&& ("view task requirements i/").equals(projectCommand.substring(0, 25))) {
int taskIndex = Integer.parseInt(projectCommand.substring(25));
Expand All @@ -92,12 +95,13 @@ public void manageProject(String input) {
/*
Empty method
*/
} else if (projectCommand.length() == 12 && ("delete task ").equals(projectCommand)) {
String temp3 = "";
System.out.println(temp3);
/*
Empty method
*/
} else if (projectCommand.length() >= 12 && ("delete task ").equals(projectCommand.substring(0,12))) {
int taskIndexNumber = Integer.parseInt(projectCommand.substring(12).split(" ")[0]);
if (projectToManage.getNumOfTasks() >= taskIndexNumber) {
consoleView.removeTask(projectToManage, taskIndexNumber);
} else {
consoleView.consolePrint("The task index entered is invalid.");
}
} else if (projectCommand.length() >= 12 && ("assign task ").equals(projectCommand.substring(0,12))) {
AssignmentControllerUtil.manageAssignment(projectToManage,
projectCommand.substring(12).split(" "), consoleView);
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/models/data/IProject.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public interface IProject {

void addTask(Task newTask);

void removeTask(int taskIndexNumber);

boolean memberIndexExists(int indexNumber);

Task getTask(int taskIndex);
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/models/data/NullProject.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,13 @@ public void addTask(Task newTask) {
*/
}

@Override
public void removeTask(int taskIndexNumber) {
/*
Empty method
*/
}

@Override
public boolean memberIndexExists(int indexNumber) {
return false;
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/models/data/Project.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,11 @@ public void addTask(Task newTask) {
this.taskList.addTask(newTask);
}

@Override
public void removeTask(int taskIndexNumber) {
this.taskList.removeTask(taskIndexNumber);
}

@Override
public boolean memberIndexExists(int indexNumber) {
return (indexNumber > 0 && indexNumber <= this.getNumOfMembers());
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/models/task/Task.java
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ public void assignMember(Member member) {
this.taskMemberList.addMember(member);
}

public TaskMemberList getAssignedTasks() {
return taskMemberList;
}

public HashSet<Integer> getAssignedIndexes() {
return this.taskMemberList.getAssignedMembersIndexNumbers();
}
Expand Down
12 changes: 11 additions & 1 deletion src/main/java/models/task/TaskList.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ public void addTask(Task task) {
taskList.add(task);
}

/**
* Deletes the task from the list using the index number.
* @param taskIndexNumber The index number of the task to be deleted.
*/
public void removeTask(int taskIndexNumber) {
this.taskList.remove(taskIndexNumber - 1);
}

/**
* Returns an ArrayList with String descriptions of task details.
* @return An ArrayList with String descriptions of task details.
Expand All @@ -29,8 +37,10 @@ public ArrayList<String> getAllTaskDetails() {
ArrayList<String> taskDetails = new ArrayList<>();
ArrayList<Task> sortedTaskList = taskList;
sortedTaskList.sort(sortTasksByPriority);
int taskIndex = 1;
for (Task task : sortedTaskList) {
taskDetails.add(task.getDetails());
taskDetails.add(taskIndex + ". " + task.getDetails());
taskIndex++;
}
return taskDetails;
}
Expand Down
34 changes: 34 additions & 0 deletions src/main/java/views/CLIView.java
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,22 @@ public void addMember(IProject projectToManage, Member newMember) {
+ "Member details: " + newMember.getDetails());
}

/**
* Edits the details of a member belonging to the project.
* @param projectToManage The project specified by the user.
* @param memberIndexNumber The member whose details are to be updated.
* @param memberDetails The updated details of the member.
*/
public void editMember(IProject projectToManage, int memberIndexNumber, String memberDetails) {
projectToManage.editMember(memberIndexNumber, memberDetails);
consolePrint("Updated member details with the index number " + memberIndexNumber);
}

/**
* Deletes a member from the project.
* @param projectToManage The project specified by the user.
* @param memberIndexNumber The member to be removed from the project.
*/
public void removeMember(IProject projectToManage, int memberIndexNumber) {
projectToManage.removeMember(memberIndexNumber);
consolePrint("Removed member with the index number " + memberIndexNumber);
Expand All @@ -174,6 +185,16 @@ public void addTask(IProject projectToManage, Task newTask) {
consolePrint("Added new task to the list.");
}

/**
* Deletes a task from the project.
* @param projectToManage The project specified by the user.
* @param taskIndexNumber The index of the task to be deleted.
*/
public void removeTask(IProject projectToManage, int taskIndexNumber) {
consolePrint("Removed " + projectToManage.getTask(taskIndexNumber).getTaskName());
projectToManage.removeTask(taskIndexNumber);
}

/**
* Shows the details of all the members in the project.
* Can be updated later on to include more information (tasks etc).
Expand All @@ -193,6 +214,19 @@ public void viewAllTasks(IProject projectToManage) {
consolePrint(allTaskDetails.toArray(new String[0]));
}

/**
* Shows all the task that is assigned in the project.
* @param projectToManage The project specified by the user.
*/
public void viewAssignedTask(IProject projectToManage) {
for (Task task: projectToManage.getTasks().getTaskList()) {
ArrayList<String> allAssignedTasks = new ArrayList<String>();
allAssignedTasks.add(task.getTaskName() + " is assigned to: ");
allAssignedTasks.addAll(task.getAssignedTasks().getAllMemberDetails());
consolePrint(allAssignedTasks.toArray(new String[0]));
}
}

/**
* Assigns or unassigns a particular task to members in a project.
* @param assign ArrayList containing index number of members to be assigned task.
Expand Down
3 changes: 1 addition & 2 deletions src/test/java/task/TaskTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@ public void testAddTask() {
assertEquals(dummyTask.getDetails(),task.getDetails());
assertEquals(dummyTask.getTaskRequirements(), task.getTaskRequirements());

SimpleDateFormat formatter2 = new SimpleDateFormat("dd/MM/yyyy");
Date dueDate2 = formatter2.parse("1/4/1989");
Date dueDate2 = formatter.parse("1/4/1989");
ArrayList<String> taskRequirements2 = new ArrayList<>();
taskRequirements2.add("requirement1");
taskRequirements2.add("requirement2");
Expand Down
52 changes: 52 additions & 0 deletions src/test/java/task/ViewAssignedTasksTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package task;

import models.data.Project;
import models.member.Member;
import models.task.Task;
import models.task.TaskState;
import org.junit.jupiter.api.Test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class ViewAssignedTasksTest {
Project project = new Project("Infinity_Gauntlet");

@Test
public void alwaysTrue() {
assertEquals(2, 2);
}

@Test
public void testViewAssignedTask() {
String testAssignedTasks = "1. Dillen (Phone: 9999 | Email: dillen@gmail.com)\n"
+ "2. Jerry (Phone: 9999 | Email: jerryn@gmail.com)";
String testAssignedTasks2 = "1. Dillen (Phone: 9999 | Email: dillen@gmail.com)";
try {
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date dueDate = formatter.parse("19/10/2019");
ArrayList<String> taskRequirements = new ArrayList<>();
taskRequirements.add("requirement1");

project.addTask(new Task("task2",5, dueDate,10, TaskState.TODO, taskRequirements));
project.addTask(new Task("task1",10, dueDate,10, TaskState.TODO, taskRequirements));

project.addMember(new Member("Dillen", "9999", "dillen@gmail.com",1));
project.addMember(new Member("Jerry", "9999", "jerryn@gmail.com",2));

project.getTask(1).assignMember(project.getMembers().getMember(1));
project.getTask(1).assignMember(project.getMembers().getMember(2));
project.getTask(2).assignMember(project.getMembers().getMember(1));

assertEquals(project.getTask(1).getAssignedTasks().getAllMemberDetails().get(0) + "\n"
+ project.getTask(1).getAssignedTasks().getAllMemberDetails().get(1),testAssignedTasks);
assertEquals(project.getTask(2).getAssignedTasks().getAllMemberDetails().get(0),testAssignedTasks2);
} catch (ParseException e) {
e.printStackTrace();
}
}
}

0 comments on commit 0d48ca6

Please sign in to comment.