From 0087d5b467ef8505f9ccfaa8849c8304f3520ee6 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 4 Dec 2024 18:15:30 +0300 Subject: [PATCH 1/8] commit 7 --- Test/manager/InMemoryHistoryManagerTest.java | 128 +++++++++++++++---- src/manager/HistoryManager.java | 1 + src/manager/InMemoryHistoryManager.java | 116 ++++++++++++++++- src/manager/InMemoryTaskManager.java | 33 ++--- src/model/Task.java | 27 ++-- 5 files changed, 242 insertions(+), 63 deletions(-) diff --git a/Test/manager/InMemoryHistoryManagerTest.java b/Test/manager/InMemoryHistoryManagerTest.java index 6dfb7f4..96c8e36 100644 --- a/Test/manager/InMemoryHistoryManagerTest.java +++ b/Test/manager/InMemoryHistoryManagerTest.java @@ -7,7 +7,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; - import java.util.List; import static org.junit.jupiter.api.Assertions.*; @@ -23,8 +22,8 @@ public void beforeEach() { @Test public void getHistoryShouldReturnListOf10Tasks() { - for (int i = 0; i < 20; i++) { - taskManager.addTask(new Task("Some name", "Some description")); + for (int i = 0; i < 10; i++) { + taskManager.addTask(new Task("Some name " + i, "Some description " + i)); } List tasks = taskManager.getTasks(); @@ -41,30 +40,19 @@ public void getHistoryShouldReturnOldTaskAfterUpdate() { Task washFloor = new Task("Помыть полы", "С новым средством"); taskManager.addTask(washFloor); taskManager.getTaskByID(washFloor.getId()); - taskManager.updateTask(new Task(washFloor.getId(), "Не забыть помыть полы", - "Можно и без средства", Status.IN_PROGRESS)); + + // Update the task + Task updatedTask = new Task(washFloor.getId(), "Не забыть помыть полы", + "Можно и без средства", Status.IN_PROGRESS); + taskManager.updateTask(updatedTask); + List tasks = taskManager.getHistory(); - Task oldTask = tasks.getFirst(); + Task oldTask = tasks.get(tasks.size() - 1); // Get the last accessed task assertEquals(washFloor.getName(), oldTask.getName(), "В истории не сохранилась старая версия задачи"); assertEquals(washFloor.getDescription(), oldTask.getDescription(), "В истории не сохранилась старая версия задачи"); - } - @Test - public void getHistoryShouldReturnOldEpicAfterUpdate() { - Epic flatRenovation = new Epic(1, "Сделать ремонт", "Нужно успеть за отпуск"); - taskManager.addEpic(flatRenovation); - taskManager.getEpicByID(flatRenovation.getId()); - taskManager.updateEpic(new Epic(flatRenovation.getId(), "Новое имя", "новое описание" - )); - List epics = taskManager.getHistory(); - Epic oldEpic = (Epic) epics.getFirst(); - assertEquals(flatRenovation.getName(), oldEpic.getName(), - "В истории не сохранилась старая версия эпика"); - assertEquals(flatRenovation.getDescription(), oldEpic.getDescription(), - "В истории не сохранилась старая версия эпика"); - } @Test public void getHistoryShouldReturnOldSubtaskAfterUpdate() { @@ -73,14 +61,98 @@ public void getHistoryShouldReturnOldSubtaskAfterUpdate() { Subtask flatRenovationSubtask3 = new Subtask("Заказать книжный шкаф", "Из темного дерева", flatRenovation.getId()); taskManager.addSubtask(flatRenovationSubtask3); + + // Access the subtask to record it in history taskManager.getSubtaskByID(flatRenovationSubtask3.getId()); - taskManager.updateSubtask(new Subtask(flatRenovationSubtask3.getId(), "Новое имя", - "новое описание", Status.IN_PROGRESS, flatRenovation.getId())); + + // Update the subtask + Subtask updatedSubtask = new Subtask(flatRenovationSubtask3.getId(), "Новое имя", + "новое описание", Status.IN_PROGRESS, flatRenovation.getId()); + taskManager.updateSubtask(updatedSubtask); + + // Check the history List subtasks = taskManager.getHistory(); - Subtask oldSubtask = (Subtask) subtasks.getFirst(); - assertEquals(flatRenovationSubtask3.getName(), oldSubtask.getName(), - "В истории не сохранилась старая версия эпика"); - assertEquals(flatRenovationSubtask3.getDescription(), oldSubtask.getDescription(), - "В истории не сохранилась старая версия эпика"); + System.out.println("History contents:"); + for (Task task : subtasks) { + System.out.println(task.getId() + ": " + task.getName() + " (" + task.getClass().getSimpleName() + ")"); + } + + // Check the last accessed task + Task lastAccessedTask = subtasks.get(subtasks.size() - 1); + if (lastAccessedTask instanceof Subtask) { + Subtask oldSubtask = (Subtask) lastAccessedTask; + assertEquals(flatRenovationSubtask3.getName(), oldSubtask.getName(), + "В истории не сохранилась старая версия подзадачи"); + assertEquals(flatRenovationSubtask3.getDescription(), oldSubtask.getDescription(), + "В истории не сохранилась старая версия подзадачи"); + } else { + fail("Last accessed task is not a Subtask"); + } + } + + @Test + public void shouldNotRetainOldIdInDeletedSubtask() { + Epic epic = new Epic(1, "Сделать ремонт", "Нужно успеть за отпуск"); + taskManager.addEpic(epic); + Subtask subtask = new Subtask("Заказать книжный шкаф", "Из темного дерева", epic.getId()); + taskManager.addSubtask(subtask); + + // Добавляем подзадачу в историю + taskManager.getSubtaskByID(subtask.getId()); + + // Удаляем подзадачу + taskManager.deleteSubtaskByID(subtask.getId()); + + // Проверяем, что подзадача не осталась в менеджере + assertNull(taskManager.getSubtaskByID(subtask.getId()), "Подзадача не была удалена"); + + // Проверяем, что в истории не осталось старого ID + List history = taskManager.getHistory(); + assertFalse(history.stream().anyMatch(task -> task.getId() == subtask.getId()), + "История содержит неактуальный ID подзадачи"); + } + + @Test + public void shouldNotHaveInvalidSubtaskIdsInEpic() { + Epic epic = new Epic(1, "Сделать ремонт", "Нужно успеть за отпуск"); + taskManager.addEpic(epic); + Subtask subtask = new Subtask("Заказать книжный шкаф", "Из темного дерева", epic.getId()); + taskManager.addSubtask(subtask); + + // Удаляем подзадачу + taskManager.deleteSubtaskByID(subtask.getId()); + + // Проверяем, что в эпике не осталось неактуальных ID подзадач + List subtasksInEpic = taskManager.getEpicSubtasks(epic); // Передаем объект epic + assertFalse(subtasksInEpic.stream().anyMatch(s -> s.getId() == subtask.getId()), + "Эпик содержит неактуальный ID подзадачи"); + } + + + @Test + public void testGetTaskByIDAddsToHistory() { + InMemoryTaskManager taskManager = new InMemoryTaskManager(); + Task task = new Task("Test Task", "Description"); + taskManager.addTask(task); + + taskManager.getTaskByID(task.getId()); + + List history = taskManager.getHistory(); + assertEquals(1, history.size()); + assertEquals(task, history.get(0)); + } + + @Test + public void testUpdateTaskUpdatesTaskAndAddsOldVersionToHistory() { + InMemoryTaskManager taskManager = new InMemoryTaskManager(); + Task task = new Task("Test Task", "Description"); + taskManager.addTask(task); + + Task updatedTask = new Task(task.getId(), "Updated Task", "Updated Description"); + taskManager.updateTask(updatedTask); + + List history = taskManager.getHistory(); + assertEquals(1, history.size()); + assertEquals(task, history.get(0)); // Проверяем, что старая версия добавлена в историю } } \ No newline at end of file diff --git a/src/manager/HistoryManager.java b/src/manager/HistoryManager.java index b2bcde7..354efe4 100644 --- a/src/manager/HistoryManager.java +++ b/src/manager/HistoryManager.java @@ -6,5 +6,6 @@ public interface HistoryManager { void add(Task task); + void remove(int id); List getHistory(); } \ No newline at end of file diff --git a/src/manager/InMemoryHistoryManager.java b/src/manager/InMemoryHistoryManager.java index b9908b3..f674966 100644 --- a/src/manager/InMemoryHistoryManager.java +++ b/src/manager/InMemoryHistoryManager.java @@ -1,23 +1,125 @@ package manager; + + import model.Task; import java.util.*; - public class InMemoryHistoryManager implements HistoryManager { - private final List history = new ArrayList<>(); + private static class CustomLinkedList { + private final Map table = new HashMap<>(); + private Node head; + private Node tail; + + private void linkLast(Task task) { + Node element = new Node(); + element.setTask(task); + + if (table.containsKey(task.getId())) { + removeNode(table.get(task.getId())); + } + + if (head == null) { + tail = element; + head = element; + element.setNext(null); + element.setPrev(null); + } else { + element.setPrev(tail); + element.setNext(null); + tail.setNext(element); + tail = element; + } + + table.put(task.getId(), element); + } + + private List getTasks() { + List result = new ArrayList<>(); + Node element = head; + while (element != null) { + result.add(element.getTask()); + element = element.getNext(); + } + return result; + } + + private void removeNode(Node node) { + if (node != null) { + table.remove(node.getTask().getId()); + Node prev = node.getPrev(); + Node next = node.getNext(); + + if (head == node) { + head = node.getNext(); + } + if (tail == node) { + tail = node.getPrev(); + } + + if (prev != null) { + prev.setNext(next); + } + + if (next != null) { + next.setPrev(prev); + } + } + } + + private Node getNode(int id) { + return table.get(id); + } + } + private final CustomLinkedList list = new CustomLinkedList(); + + // Добавление нового просмотра задачи в историю @Override public void add(Task task) { - if (history.size() >= 10) { - history.remove(0); - } - history.add(task); + list.linkLast(task); + } + + // Удаление просмотра из истории + @Override + public void remove(int id) { + list.removeNode(list.getNode(id)); } + // Получение истории просмотров @Override public List getHistory() { - return List.copyOf(history); + return list.getTasks(); + } +} + +class Node { + private Task task; + private Node prev; + private Node next; + + public Node getNext() { + return next; + } + + public Node getPrev() { + return prev; + } + + public Task getTask() { + return task; + } + + public void setNext(Node next) { + this.next = next; + } + + public void setPrev(Node prev) { + this.prev = prev; + } + + public void setTask(Task task) { + this.task = task; } } \ No newline at end of file diff --git a/src/manager/InMemoryTaskManager.java b/src/manager/InMemoryTaskManager.java index aa804bd..5dc2047 100644 --- a/src/manager/InMemoryTaskManager.java +++ b/src/manager/InMemoryTaskManager.java @@ -46,14 +46,13 @@ public Subtask addSubtask(Subtask subtask) { return subtask; } - @Override - public Task updateTask(Task task) { - Integer taskID = task.getId(); - if (taskID == null || !tasks.containsKey(taskID)) { - return null; + public Task updateTask(Task updatedTask) { + Task existingTask = getTaskByID(updatedTask.getId()); + if (existingTask != null) { + historyManager.add(new Task(existingTask)); // Добавляем старую версию в историю + tasks.put(updatedTask.getId(), updatedTask); } - tasks.replace(taskID, task); - return task; + return existingTask; } @Override @@ -92,7 +91,6 @@ public Subtask updateSubtask(Subtask subtask) { int epicID = subtask.getEpicID(); Subtask oldSubtask = subtasks.get(subtaskID); subtasks.replace(subtaskID, subtask); - // обновляем подзадачу в списке подзадач эпика и проверяем статус эпика Epic epic = epics.get(epicID); ArrayList subtaskList = epic.getSubtaskList(); subtaskList.remove(oldSubtask); @@ -186,14 +184,17 @@ public void deleteEpicByID(int id) { @Override public void deleteSubtaskByID(int id) { Subtask subtask = subtasks.get(id); - int epicID = subtask.getEpicID(); - subtasks.remove(id); - // обновляем список подзадач и статус эпика - Epic epic = epics.get(epicID); - ArrayList subtaskList = epic.getSubtaskList(); - subtaskList.remove(subtask); - epic.setSubtaskList(subtaskList); - updateEpicStatus(epic); + if (subtask != null) { + int epicID = subtask.getEpicID(); + subtasks.remove(id); + // Remove from history + historyManager.remove(id); + Epic epic = epics.get(epicID); + ArrayList subtaskList = epic.getSubtaskList(); + subtaskList.remove(subtask); + epic.setSubtaskList(subtaskList); + updateEpicStatus(epic); + } } @Override diff --git a/src/model/Task.java b/src/model/Task.java index e70661f..debf3f6 100644 --- a/src/model/Task.java +++ b/src/model/Task.java @@ -8,6 +8,7 @@ public class Task { private int id; private Status status; + // Constructor with parameters public Task(int id, String name, String description, Status status) { this.id = id; this.name = name; @@ -15,16 +16,27 @@ public Task(int id, String name, String description, Status status) { this.status = status; } + // Constructor with parameters (default status NEW) public Task(String name, String description) { this.name = name; this.description = description; this.status = Status.NEW; } + // Constructor with parameters (default status NEW) public Task(int id, String name, String description) { this(id, name, description, Status.NEW); } + // Copy constructor + public Task(Task task) { + this.id = task.id; // Copy id + this.name = task.name; // Copy name + this.description = task.description; // Copy description + this.status = task.status; // Copy status + } + + // Getters and setters public String getName() { return name; } @@ -62,30 +74,21 @@ public boolean equals(Object object) { if (this == object) return true; if (object == null || getClass() != object.getClass()) return false; Task task = (Task) object; - return id == task.id; + return id == task.id; // Compare by id for equality } @Override public int hashCode() { - int hash = 17; - if (name != null) { - hash = hash + name.hashCode(); - } - hash = hash * 31; - if (description != null) { - hash = hash + description.hashCode(); - } - return hash; + return Objects.hash(id); // Hash based on id only for uniqueness } @Override public String toString() { - return "model.Task{" + + return "Task{" + "name='" + name + '\'' + ", description='" + description + '\'' + ", id=" + id + ", status=" + status + '}'; } - } \ No newline at end of file From 25f1cef9d2a184ba312f4c54bad8d82d7816dc8a Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 4 Dec 2024 18:29:04 +0300 Subject: [PATCH 2/8] commit 8 --- Test/manager/InMemoryHistoryManagerTest.java | 8 +++---- src/model/Task.java | 22 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Test/manager/InMemoryHistoryManagerTest.java b/Test/manager/InMemoryHistoryManagerTest.java index 96c8e36..f9611ec 100644 --- a/Test/manager/InMemoryHistoryManagerTest.java +++ b/Test/manager/InMemoryHistoryManagerTest.java @@ -41,13 +41,13 @@ public void getHistoryShouldReturnOldTaskAfterUpdate() { taskManager.addTask(washFloor); taskManager.getTaskByID(washFloor.getId()); - // Update the task + Task updatedTask = new Task(washFloor.getId(), "Не забыть помыть полы", "Можно и без средства", Status.IN_PROGRESS); taskManager.updateTask(updatedTask); List tasks = taskManager.getHistory(); - Task oldTask = tasks.get(tasks.size() - 1); // Get the last accessed task + Task oldTask = tasks.get(tasks.size() - 1); assertEquals(washFloor.getName(), oldTask.getName(), "В истории не сохранилась старая версия задачи"); assertEquals(washFloor.getDescription(), oldTask.getDescription(), "В истории не сохранилась старая версия задачи"); @@ -62,7 +62,7 @@ public void getHistoryShouldReturnOldSubtaskAfterUpdate() { flatRenovation.getId()); taskManager.addSubtask(flatRenovationSubtask3); - // Access the subtask to record it in history + taskManager.getSubtaskByID(flatRenovationSubtask3.getId()); // Update the subtask @@ -77,7 +77,7 @@ public void getHistoryShouldReturnOldSubtaskAfterUpdate() { System.out.println(task.getId() + ": " + task.getName() + " (" + task.getClass().getSimpleName() + ")"); } - // Check the last accessed task + Task lastAccessedTask = subtasks.get(subtasks.size() - 1); if (lastAccessedTask instanceof Subtask) { Subtask oldSubtask = (Subtask) lastAccessedTask; diff --git a/src/model/Task.java b/src/model/Task.java index debf3f6..9c2ed8a 100644 --- a/src/model/Task.java +++ b/src/model/Task.java @@ -8,7 +8,7 @@ public class Task { private int id; private Status status; - // Constructor with parameters + public Task(int id, String name, String description, Status status) { this.id = id; this.name = name; @@ -16,27 +16,27 @@ public Task(int id, String name, String description, Status status) { this.status = status; } - // Constructor with parameters (default status NEW) + public Task(String name, String description) { this.name = name; this.description = description; this.status = Status.NEW; } - // Constructor with parameters (default status NEW) + public Task(int id, String name, String description) { this(id, name, description, Status.NEW); } - // Copy constructor + public Task(Task task) { - this.id = task.id; // Copy id - this.name = task.name; // Copy name - this.description = task.description; // Copy description - this.status = task.status; // Copy status + this.id = task.id; + this.name = task.name; + this.description = task.description; + this.status = task.status; } - // Getters and setters + public String getName() { return name; } @@ -74,12 +74,12 @@ public boolean equals(Object object) { if (this == object) return true; if (object == null || getClass() != object.getClass()) return false; Task task = (Task) object; - return id == task.id; // Compare by id for equality + return id == task.id; } @Override public int hashCode() { - return Objects.hash(id); // Hash based on id only for uniqueness + return Objects.hash(id); } @Override From a983b45fe03371209f3488ef2498b90b87af512b Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 4 Dec 2024 18:36:51 +0300 Subject: [PATCH 3/8] commit 9 --- src/manager/TaskManager.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/manager/TaskManager.java b/src/manager/TaskManager.java index 917f3f8..286c18c 100644 --- a/src/manager/TaskManager.java +++ b/src/manager/TaskManager.java @@ -9,24 +9,45 @@ import java.util.List; public interface TaskManager { + Task addTask(Task task); + Epic addEpic(Epic epic); + Subtask addSubtask(Subtask subtask); + Task updateTask(Task task); + Epic updateEpic(Epic epic); + Subtask updateSubtask(Subtask subtask); + Task getTaskByID(int id); + Epic getEpicByID(int id); + Subtask getSubtaskByID(int id); + ArrayList getTasks(); + ArrayList getEpics(); + ArrayList getSubtasks(); + ArrayList getEpicSubtasks(Epic epic); + void deleteTasks(); + void deleteEpics(); + void deleteSubtasks(); + void deleteTaskByID(int id); + void deleteEpicByID(int id); + void deleteSubtaskByID(int id); + List getHistory(); + } From 10a757ecaedfa00667a7112d8e296ff727694821 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 4 Dec 2024 18:38:07 +0300 Subject: [PATCH 4/8] commit 10 --- src/manager/HistoryManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/manager/HistoryManager.java b/src/manager/HistoryManager.java index 354efe4..d06a752 100644 --- a/src/manager/HistoryManager.java +++ b/src/manager/HistoryManager.java @@ -5,7 +5,11 @@ import java.util.List; public interface HistoryManager { + void add(Task task); + void remove(int id); + List getHistory(); + } \ No newline at end of file From 9b3d3d1b242c2f45726fe9feb852dba238360ae8 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 4 Dec 2024 18:42:13 +0300 Subject: [PATCH 5/8] commit 11 --- src/manager/InMemoryHistoryManager.java | 29 ------------------------- 1 file changed, 29 deletions(-) diff --git a/src/manager/InMemoryHistoryManager.java b/src/manager/InMemoryHistoryManager.java index f674966..8565d6d 100644 --- a/src/manager/InMemoryHistoryManager.java +++ b/src/manager/InMemoryHistoryManager.java @@ -94,32 +94,3 @@ public List getHistory() { } } -class Node { - private Task task; - private Node prev; - private Node next; - - public Node getNext() { - return next; - } - - public Node getPrev() { - return prev; - } - - public Task getTask() { - return task; - } - - public void setNext(Node next) { - this.next = next; - } - - public void setPrev(Node prev) { - this.prev = prev; - } - - public void setTask(Task task) { - this.task = task; - } -} \ No newline at end of file From 2c3695b813cfd70831071180c0c1ca33d85114d1 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 4 Dec 2024 18:45:24 +0300 Subject: [PATCH 6/8] commit 12 --- src/model/Subtask.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/model/Subtask.java b/src/model/Subtask.java index 38410af..ad37d23 100644 --- a/src/model/Subtask.java +++ b/src/model/Subtask.java @@ -27,6 +27,7 @@ public String toString() { ", status=" + getStatus() + '}'; } + @Override public boolean equals(Object o) { if (this == o) return true; From c08dbf8eda9738673eb54016c5c4087fdf890ef7 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 4 Dec 2024 18:48:54 +0300 Subject: [PATCH 7/8] commit 13 --- src/manager/InMemoryHistoryManager.java | 33 +++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/manager/InMemoryHistoryManager.java b/src/manager/InMemoryHistoryManager.java index 8565d6d..e42534d 100644 --- a/src/manager/InMemoryHistoryManager.java +++ b/src/manager/InMemoryHistoryManager.java @@ -1,7 +1,5 @@ package manager; - - import model.Task; import java.util.*; @@ -12,6 +10,36 @@ private static class CustomLinkedList { private Node head; private Node tail; + private static class Node { + private Task task; + private Node prev; + private Node next; + + public Task getTask() { + return task; + } + + public void setTask(Task task) { + this.task = task; + } + + public Node getPrev() { + return prev; + } + + public void setPrev(Node prev) { + this.prev = prev; + } + + public Node getNext() { + return next; + } + + public void setNext(Node next) { + this.next = next; + } + } + private void linkLast(Task task) { Node element = new Node(); element.setTask(task); @@ -94,3 +122,4 @@ public List getHistory() { } } + From 73316fd3b12e291e73d29a1794f1780e9e4bfeda Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 4 Dec 2024 19:03:46 +0300 Subject: [PATCH 8/8] commit 14 --- {Test => test}/manager/InMemoryHistoryManagerTest.java | 0 {Test => test}/manager/InMemoryTaskManagerTest.java | 0 {Test => test}/manager/ManagersTest.java | 0 {Test => test}/model/EpicTest.java | 0 {Test => test}/model/SubtaskTest.java | 0 {Test => test}/model/TaskTest.java | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename {Test => test}/manager/InMemoryHistoryManagerTest.java (100%) rename {Test => test}/manager/InMemoryTaskManagerTest.java (100%) rename {Test => test}/manager/ManagersTest.java (100%) rename {Test => test}/model/EpicTest.java (100%) rename {Test => test}/model/SubtaskTest.java (100%) rename {Test => test}/model/TaskTest.java (100%) diff --git a/Test/manager/InMemoryHistoryManagerTest.java b/test/manager/InMemoryHistoryManagerTest.java similarity index 100% rename from Test/manager/InMemoryHistoryManagerTest.java rename to test/manager/InMemoryHistoryManagerTest.java diff --git a/Test/manager/InMemoryTaskManagerTest.java b/test/manager/InMemoryTaskManagerTest.java similarity index 100% rename from Test/manager/InMemoryTaskManagerTest.java rename to test/manager/InMemoryTaskManagerTest.java diff --git a/Test/manager/ManagersTest.java b/test/manager/ManagersTest.java similarity index 100% rename from Test/manager/ManagersTest.java rename to test/manager/ManagersTest.java diff --git a/Test/model/EpicTest.java b/test/model/EpicTest.java similarity index 100% rename from Test/model/EpicTest.java rename to test/model/EpicTest.java diff --git a/Test/model/SubtaskTest.java b/test/model/SubtaskTest.java similarity index 100% rename from Test/model/SubtaskTest.java rename to test/model/SubtaskTest.java diff --git a/Test/model/TaskTest.java b/test/model/TaskTest.java similarity index 100% rename from Test/model/TaskTest.java rename to test/model/TaskTest.java