Skip to content

Commit

Permalink
Sarthak | Introduces factory method in Task
Browse files Browse the repository at this point in the history
  • Loading branch information
SarthakMakhija committed Jan 10, 2025
1 parent 371beb3 commit 6c8c781
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ public void execute(Arguments arguments) {
String taskDescription = arguments.argumentAtIndexAsString(1);

this.lastTaskId = this.lastTaskId + 1;
projects.addTaskToProjectWithName(projectName, new Task(this.lastTaskId, taskDescription, false));
projects.addTaskToProjectWithName(projectName, Task.newTask(this.lastTaskId, taskDescription));
}
}
6 changes: 5 additions & 1 deletion src/main/java/com/codurance/training/tasks/Task.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ public final class Task {
private final String description;
private boolean done;

public Task(long id, String description, boolean done) {
public static Task newTask(long id, String description) {
return new Task(id, description, false);
}

Task(long id, String description, boolean done) {
this.id = id;
this.description = description;
this.done = done;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public void executeUncheckCommandByUncheckingATask() throws Exception {

Projects projects = new Projects();
projects.addProject("caizin");
projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", true));
projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1"));

UncheckCommand uncheckCommand = new UncheckCommand(writer, projects);
uncheckCommand.execute(new Arguments(List.of("1")));
Expand Down Expand Up @@ -73,7 +73,7 @@ public void executeCheckCommandByCheckingATask() throws Exception {

Projects projects = new Projects();
projects.addProject("caizin");
projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", false));
projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1"));

CheckCommand checkCommand = new CheckCommand(writer, projects);
checkCommand.execute(new Arguments(List.of("1")));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public void executeShowCommandWithAProjectContainingASingleTask() throws Excepti

Projects projects = new Projects();
projects.addProject("caizin");
projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", false));
projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1"));

ShowCommand command = new ShowCommand(writer, projects);
command.execute(new Arguments(List.of()));
Expand All @@ -42,8 +42,8 @@ public void executeShowCommandWithAProjectContainingACoupleOfTasks() throws Exce

Projects projects = new Projects();
projects.addProject("caizin");
projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", false));
projects.addTaskToProjectWithName("caizin", new Task(2, "Task 2", false));
projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1"));
projects.addTaskToProjectWithName("caizin", Task.newTask(2, "Task 2"));

ShowCommand command = new ShowCommand(writer, projects);
command.execute(new Arguments(List.of()));
Expand All @@ -58,8 +58,9 @@ public void executeShowCommandWithAProjectContainingACoupleOfTasksOneOfThemDone(

Projects projects = new Projects();
projects.addProject("caizin");
projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", false));
projects.addTaskToProjectWithName("caizin", new Task(2, "Task 2", true));
projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1"));
projects.addTaskToProjectWithName("caizin", Task.newTask(2, "Task 2"));
projects.markTaskWithIdDone(2);

ShowCommand command = new ShowCommand(writer, projects);
command.execute(new Arguments(List.of()));
Expand Down
18 changes: 11 additions & 7 deletions src/test/java/com/codurance/training/tasks/ProjectsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ public void addProject() {
public void addTaskToAnExistingProject() {
Projects projects = new Projects();
projects.addProject("caizin");
projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", true));
projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1"));
projects.markTaskWithIdDone(1);

String expected = "caizin\n" + "[x] 1: Task 1\n";
assertEquals(expected, projects.format());
Expand All @@ -28,15 +29,16 @@ public void addTaskToAnExistingProject() {
@Test
public void attemptToAddTaskToANonExistingProject() {
Projects projects = new Projects();
assertThrows(IllegalArgumentException.class, () -> projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", true)));
assertThrows(IllegalArgumentException.class, () -> projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1")));
}

@Test
public void formatProjectsWithASingleProject() {
Projects projects = new Projects();

projects.addProject("caizin");
projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", true));
projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1"));
projects.markTaskWithIdDone(1);

String expected = "caizin\n" + "[x] 1: Task 1\n";
assertEquals(expected, projects.format());
Expand All @@ -48,8 +50,10 @@ public void formatProjectsWithACoupleOfProjects() {
projects.addProject("caizin");
projects.addProject("database");

projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", true));
projects.addTaskToProjectWithName("database", new Task(2, "Task 2", true));
projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1"));
projects.addTaskToProjectWithName("database", Task.newTask(2, "Task 2"));
projects.markTaskWithIdDone(1);
projects.markTaskWithIdDone(2);

String expected = "caizin\n" + "[x] 1: Task 1\n" + "database\n" + "[x] 2: Task 2\n";
assertEquals(expected, projects.format());
Expand All @@ -59,7 +63,7 @@ public void formatProjectsWithACoupleOfProjects() {
public void markTaskAsNotDone() {
Projects projects = new Projects();
projects.addProject("caizin");
projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", true));
projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1"));

projects.markTaskWithIdNotDone(1);

Expand All @@ -71,7 +75,7 @@ public void markTaskAsNotDone() {
public void markTaskAsDone() {
Projects projects = new Projects();
projects.addProject("caizin");
projects.addTaskToProjectWithName("caizin", new Task(1, "Task 1", false));
projects.addTaskToProjectWithName("caizin", Task.newTask(1, "Task 1"));

projects.markTaskWithIdDone(1);

Expand Down
14 changes: 8 additions & 6 deletions src/test/java/com/codurance/training/tasks/TaskTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,39 +8,41 @@ public class TaskTest {

@Test
public void formatADoneTask() {
Task task = new Task(1, "Task 1", true);
Task task = Task.newTask(1, "Task 1");
task.markDone();

assertEquals("[x] 1: Task 1\n", task.format());
}

@Test
public void formatANotDoneTask() {
Task task = new Task(1, "Task 1", false);
Task task = Task.newTask(1, "Task 1");
assertEquals("[ ] 1: Task 1\n", task.format());
}

@Test
public void matchesId() {
Task task = new Task(1, "Task 1", false);
Task task = Task.newTask(1, "Task 1");
assertTrue(task.matchesId(1));
}

@Test
public void doesNotMatchId() {
Task task = new Task(1, "Task 2", false);
Task task = Task.newTask(1, "Task 2");
assertFalse(task.matchesId(2));
}

@Test
public void markATaskDone() {
Task task = new Task(2, "Task 2", false);
Task task = Task.newTask(2, "Task 2");
task.markDone();

assertEquals("[x] 2: Task 2\n", task.format());
}

@Test
public void markATaskNotDone() {
Task task = new Task(2, "Task 2", false);
Task task = Task.newTask(2, "Task 2");
task.markNotDone();

assertEquals("[ ] 2: Task 2\n", task.format());
Expand Down
15 changes: 8 additions & 7 deletions src/test/java/com/codurance/training/tasks/TasksTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ public class TasksTest {
@Test
public void formatTasksContainingASingleTask() {
Tasks tasks = new Tasks();
tasks.add(new Task(1, "Task 1", false));
tasks.add(Task.newTask(1, "Task 1"));
assertEquals("[ ] 1: Task 1\n", tasks.format());
}

@Test
public void formatTasksContainingACoupleOfTasks() {
Tasks tasks = new Tasks();
tasks.add(new Task(1, "Task 1", false));
tasks.add(new Task(2, "Task 2", false));
tasks.add(Task.newTask(1, "Task 1"));
tasks.add(Task.newTask(2, "Task 2"));

String expected = "[ ] 1: Task 1\n" + "[ ] 2: Task 2\n";
assertEquals(expected, tasks.format());
Expand All @@ -26,8 +26,9 @@ public void formatTasksContainingACoupleOfTasks() {
@Test
public void formatTasksContainingACoupleOfTasksWithOneTaskAsDone() {
Tasks tasks = new Tasks();
tasks.add(new Task(1, "Task 1", false));
tasks.add(new Task(2, "Task 2", true));
tasks.add(Task.newTask(1, "Task 1"));
tasks.add(Task.newTask(2, "Task 2"));
tasks.markTaskWithIdDone(2);

String expected = "[ ] 1: Task 1\n" + "[x] 2: Task 2\n";
assertEquals(expected, tasks.format());
Expand All @@ -36,7 +37,7 @@ public void formatTasksContainingACoupleOfTasksWithOneTaskAsDone() {
@Test
public void markATaskAsDoneWithMatchingId() {
Tasks tasks = new Tasks();
tasks.add(new Task(1, "Task 1", false));
tasks.add(Task.newTask(1, "Task 1"));

tasks.markTaskWithIdDone(1);
assertEquals("[x] 1: Task 1\n", tasks.format());
Expand All @@ -45,7 +46,7 @@ public void markATaskAsDoneWithMatchingId() {
@Test
public void markATaskAsNotDoneWithMatchingId() {
Tasks tasks = new Tasks();
tasks.add(new Task(1, "Task 1", true));
tasks.add(Task.newTask(1, "Task 1"));

tasks.markTaskWithIdNotDone(1);
assertEquals("[ ] 1: Task 1\n", tasks.format());
Expand Down

0 comments on commit 6c8c781

Please sign in to comment.