Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions src/Main.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import manager.InMemoryTaskManager;
import manager.Managers;
import manager.TaskManager;
import model.Epic;
Expand Down Expand Up @@ -51,4 +50,4 @@ private static void printHistory(TaskManager manager) {
}
}
}
}
}
5 changes: 4 additions & 1 deletion src/manager/HistoryManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
import java.util.List;

public interface HistoryManager {

void add(Task task);

void remove(int id);

List<Task> getHistory();
}
}
2 changes: 1 addition & 1 deletion src/manager/InMemoryHistoryManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,4 @@ private void removeNode(Node node) {
tail = node.prev;
}
}
}
}
2 changes: 1 addition & 1 deletion src/manager/InMemoryTaskManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -234,4 +234,4 @@ private void updateEpicStatus(int epicId) {
epic.setStatus(Status.IN_PROGRESS);
}
}
}
}
14 changes: 13 additions & 1 deletion src/manager/TaskManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,30 +9,42 @@
public interface TaskManager {

void addTask(Task task);

void addEpic(Epic epic);

void addSubtask(Subtask subtask);

List<Task> getAllTasks();

List<Epic> getAllEpics();

List<Subtask> getAllSubtasks();

Task getTaskById(int id);

Epic getEpicById(int id);

Subtask getSubtaskById(int id);

void updateTask(Task task);

void updateEpic(Epic epic);

void updateSubtask(Subtask subtask);

void removeTaskById(int id);

void removeEpicById(int id);

void removeSubtaskById(int id);

void clearTasks();

void clearEpics();

void clearSubtasks();

List<Subtask> getSubtasksOfEpic(int epicId);

List<Task> getHistory();
}
}
29 changes: 18 additions & 11 deletions src/model/Epic.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,15 @@ public void removeSubtask(int subtaskId) {

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Epic)) return false;
if (!super.equals(o)) return false;
if (this == o) {
return true;
}
if (!(o instanceof Epic)) {
return false;
}
if (!super.equals(o)) {
return false;
}
Epic epic = (Epic) o;
return Objects.equals(subtaskIds, epic.subtaskIds);
}
Expand All @@ -36,14 +42,15 @@ public boolean equals(Object o) {
public int hashCode() {
return Objects.hash(super.hashCode(), subtaskIds);
}

@Override
public String toString() {
return "Epic{" +
"id=" + getId() +
", title='" + getTitle() + '\'' +
", description='" + getDescription() + '\'' +
", status=" + getStatus() +
", subtaskIds=" + subtaskIds +
'}';
return "Epic{"
+ "id=" + getId()
+ ", title='" + getTitle() + '\''
+ ", description='" + getDescription() + '\''
+ ", status=" + getStatus()
+ ", subtaskIds=" + subtaskIds
+ '}';
}
}
}
72 changes: 49 additions & 23 deletions src/model/Task.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package model;


import java.util.Objects;

public class Task {
Expand All @@ -15,24 +14,51 @@ public Task(String title, String description, Status status) {
this.status = status;
}

public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
public String getDescription() { return description; }
public void setDescription(String description) { this.description = description; }
public Status getStatus() { return status; }
public void setStatus(Status status) { this.status = status; }
public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public Status getStatus() {
return status;
}

public void setStatus(Status status) {
this.status = status;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Task)) return false;
if (this == o) {
return true;
}
if (!(o instanceof Task)) {
return false;
}
Task task = (Task) o;
return id == task.id &&
Objects.equals(title, task.title) &&
Objects.equals(description, task.description) &&
status == task.status;
return id == task.id
&& Objects.equals(title, task.title)
&& Objects.equals(description, task.description)
&& status == task.status;
}

@Override
Expand All @@ -42,11 +68,11 @@ public int hashCode() {

@Override
public String toString() {
return "Task{" +
"id=" + id +
", title='" + title + '\'' +
", description='" + description + '\'' +
", status=" + status +
'}';
}
}
return "Task{"
+ "id=" + id
+ ", title='" + title + '\''
+ ", description='" + description + '\''
+ ", status=" + status
+ '}';
}
}
19 changes: 0 additions & 19 deletions src/tests/model/SubtaskTest.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,66 +1,66 @@
package tests.manager;

import manager.HistoryManager;
import manager.InMemoryHistoryManager;
import model.Task;
import model.Status;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.util.List;

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

class InMemoryHistoryManagerTest {
private HistoryManager historyManager;

@BeforeEach
void setUp() {
historyManager = new InMemoryHistoryManager();
}

@Test
void addAndGetHistory() {
Task task1 = new Task("Task1", "Desc", Status.NEW);
task1.setId(1);
Task task2 = new Task("Task2", "Desc", Status.IN_PROGRESS);
task2.setId(2);

historyManager.add(task1);
historyManager.add(task2);

List<Task> history = historyManager.getHistory();
assertEquals(2, history.size());
assertEquals(task1, history.get(0));
assertEquals(task2, history.get(1));
}

@Test
void shouldRemoveDuplicates() {
Task task = new Task("Task", "Desc", Status.NEW);
task.setId(1);

historyManager.add(task);
historyManager.add(task);

List<Task> history = historyManager.getHistory();
assertEquals(1, history.size());
}

@Test
void shouldRemoveNodeFromMiddle() {
Task task1 = new Task("Task1", "Desc", Status.NEW);
Task task2 = new Task("Task2", "Desc", Status.NEW);
Task task3 = new Task("Task3", "Desc", Status.NEW);
task1.setId(1); task2.setId(2); task3.setId(3);

historyManager.add(task1);
historyManager.add(task2);
historyManager.add(task3);
historyManager.add(task2); // Дубликат

List<Task> history = historyManager.getHistory();
assertEquals(3, history.size());
assertEquals(List.of(task1, task3, task2), history);
}
package test.manager;
import manager.HistoryManager;
import manager.InMemoryHistoryManager;
import model.Task;
import model.Status;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
class InMemoryHistoryManagerTest {
private HistoryManager historyManager;
@BeforeEach
void setUp() {
historyManager = new InMemoryHistoryManager();
}
@Test
void addAndGetHistory() {
Task task1 = new Task("Task1", "Desc", Status.NEW);
task1.setId(1);
Task task2 = new Task("Task2", "Desc", Status.IN_PROGRESS);
task2.setId(2);
historyManager.add(task1);
historyManager.add(task2);
List<Task> history = historyManager.getHistory();
assertEquals(2, history.size());
assertEquals(task1, history.get(0));
assertEquals(task2, history.get(1));
}
@Test
void shouldRemoveDuplicates() {
Task task = new Task("Task", "Desc", Status.NEW);
task.setId(1);
historyManager.add(task);
historyManager.add(task);
List<Task> history = historyManager.getHistory();
assertEquals(1, history.size());
}
@Test
void shouldRemoveNodeFromMiddle() {
Task task1 = new Task("Task1", "Desc", Status.NEW);
Task task2 = new Task("Task2", "Desc", Status.NEW);
Task task3 = new Task("Task3", "Desc", Status.NEW);
task1.setId(1); task2.setId(2); task3.setId(3);
historyManager.add(task1);
historyManager.add(task2);
historyManager.add(task3);
historyManager.add(task2); // Дубликат
List<Task> history = historyManager.getHistory();
assertEquals(3, history.size());
assertEquals(List.of(task1, task3, task2), history);
}
}
Loading