Skip to content

Commit 839d192

Browse files
committed
Разбить файл тестов на файлы и папки, сделать Node
класс внутренним и приватным, удалить clear из интерфейса HistoryManager
1 parent fb53910 commit 839d192

11 files changed

+457
-282
lines changed

src/ru/alexgur/kanban/service/HistoryManager.java

-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ public interface HistoryManager {
88

99
void add(Task task);
1010

11-
void clear();
12-
1311
void remove(int id);
1412

1513
List<Task> getHistory();

src/ru/alexgur/kanban/service/InMemoryHistoryManager.java

+44-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ public class InMemoryHistoryManager implements HistoryManager {
1212
private Node tail;
1313
private HashMap<Integer, Node> history = new HashMap<>();
1414

15-
@Override
1615
public void clear() {
1716
clearImpl();
1817
}
@@ -100,4 +99,48 @@ private void clearImpl() {
10099
tail = null;
101100
history.clear();
102101
}
102+
103+
private class Node {
104+
private Task task;
105+
private Node next;
106+
private Node prev;
107+
108+
public Node(Node prev, Task task, Node next) {
109+
this.task = task;
110+
this.next = next;
111+
this.prev = prev;
112+
}
113+
114+
@Override
115+
public int hashCode() {
116+
return task.hashCode();
117+
}
118+
119+
@Override
120+
public boolean equals(Object obj) {
121+
Node other = (Node) obj;
122+
return task.equals(other.task);
123+
}
124+
125+
public Task getTask() {
126+
return task;
127+
}
128+
129+
public Node getNext() {
130+
return next;
131+
}
132+
133+
public void setNext(Node next) {
134+
this.next = next;
135+
}
136+
137+
public Node getPrev() {
138+
return prev;
139+
}
140+
141+
public void setPrev(Node prev) {
142+
this.prev = prev;
143+
}
144+
}
145+
103146
}

src/ru/alexgur/kanban/service/Node.java

-50
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package test.ru.alexgur.kanban;
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
4-
import static org.junit.jupiter.api.Assertions.assertNotNull;
54
import static org.junit.jupiter.api.Assertions.assertTrue;
65

76
import java.util.ArrayList;
@@ -13,14 +12,15 @@
1312
import ru.alexgur.kanban.model.SubTask;
1413
import ru.alexgur.kanban.model.Task;
1514
import ru.alexgur.kanban.service.HistoryManager;
15+
import ru.alexgur.kanban.service.InMemoryHistoryManager;
1616
import ru.alexgur.kanban.service.Managers;
1717
import ru.alexgur.kanban.service.Status;
1818
import ru.alexgur.kanban.service.TaskManager;
1919

2020
import org.junit.jupiter.api.Assertions;
2121
import org.junit.jupiter.api.BeforeAll;
2222

23-
public class Tests {
23+
public class MainTest {
2424
private static TaskManager tm;
2525
private static HistoryManager hm;
2626

@@ -31,231 +31,6 @@ public static void createTaskManagerAndHistoryManagerVarsSetHistoryManager() {
3131
tm.setHistoryManager(hm);
3232
}
3333

34-
// проверьте, что экземпляры класса Task равны друг другу;
35-
@Test
36-
public void shouldBeEqualTwoTasks() {
37-
Task task1 = new Task();
38-
Task task2 = new Task();
39-
40-
task1.setName("Название").setText("Описание");
41-
task2.setName("Название").setText("Описание");
42-
43-
Assertions.assertEquals(task1, task2);
44-
}
45-
46-
// проверьте, что наследники класса Task равны друг другу;
47-
@Test
48-
public void shouldBeEqualTwoSubTasks() {
49-
SubTask subTask1 = new SubTask();
50-
SubTask subTask2 = new SubTask();
51-
52-
subTask1.setName("Название SubTask").setText("Описание SubTask");
53-
subTask2.setName("Название SubTask").setText("Описание SubTask");
54-
55-
Assertions.assertEquals(subTask1, subTask2);
56-
}
57-
58-
// проверьте, что объект Epic нельзя добавить в самого себя в виде подзадачи;
59-
@Test
60-
public void shouldNotBePossibleToAddEpicAsSubTask() {
61-
Epic epic = new Epic();
62-
List<Integer> sbTasksIds = new ArrayList<>();
63-
64-
sbTasksIds.add(epic.id);
65-
epic.setSubTasksIds(sbTasksIds);
66-
67-
Assertions.assertEquals(0, epic.getSubTasksIds().size());
68-
}
69-
70-
// проверьте, что объект Subtask нельзя сделать своим же эпиком;
71-
@Test
72-
public void shouldNotBePossibleToSetSubTaskAsItsOwnEpic() {
73-
SubTask subTask = new SubTask();
74-
75-
subTask.setEpicId(subTask.id);
76-
77-
Assertions.assertNotEquals(subTask.id, subTask.getEpicId());
78-
}
79-
80-
// убедитесь, что утилитарный класс всегда возвращает проинициализированные и
81-
// готовые к работе экземпляры менеджеров;
82-
@Test
83-
public void shouldReturnInitAndRedyManagers() {
84-
Assertions.assertTrue(Managers.getDefault() instanceof TaskManager);
85-
Assertions.assertTrue(Managers.getDefaultHistory() instanceof HistoryManager);
86-
}
87-
88-
// проверьте, что InMemoryTaskManager действительно добавляет задачи разного
89-
// типа и может найти их по id;
90-
@Test
91-
public void shouldSaveAllTypesToInMemoryTaskManager() {
92-
Task task = new Task();
93-
SubTask subTask = new SubTask();
94-
Epic epic = new Epic();
95-
96-
int taskId = tm.addTask(task);
97-
int subTaskId = tm.addSubTask(subTask);
98-
int epicId = tm.addEpic(epic);
99-
100-
Assertions.assertEquals(task, tm.getTask(taskId));
101-
Assertions.assertEquals(subTask, tm.getSubTask(subTaskId));
102-
Assertions.assertEquals(epic, tm.getEpic(epicId));
103-
}
104-
105-
// проверьте, что задачи с заданным id и сгенерированным id не конфликтуют
106-
// внутри менеджера; ?????? Это вообще как?
107-
108-
// создайте тест, в котором проверяется неизменность задачи (по всем полям) при
109-
// добавлении задачи в менеджер
110-
@Test
111-
public void shouldPersistTaskAfterSave() {
112-
Task task = new Task();
113-
114-
int taskId = tm.addTask(task);
115-
116-
Assertions.assertEquals(task, tm.getTask(taskId));
117-
}
118-
119-
// убедитесь, что задачи, добавляемые в HistoryManager, сохраняют предыдущую
120-
// версию задачи и её данных.
121-
@Test
122-
public void shouldPersistTaskAfterAddMoreTasks() {
123-
Task task = new Task();
124-
int taskId = tm.addTask(task);
125-
126-
tm.addTask(new Task());
127-
tm.addTask(new Task());
128-
tm.addTask(new Task());
129-
tm.addTask(new Task());
130-
131-
Assertions.assertEquals(task, tm.getTask(taskId));
132-
}
133-
134-
@Test
135-
public void shouldIncrementCountByOneAfterTaskCreate() {
136-
Task task1 = new Task();
137-
Task task2 = new Task();
138-
139-
Assertions.assertEquals(task1.id + 1, task2.id);
140-
}
141-
142-
@Test
143-
public void shouldCreateTaskAndSetProperies() {
144-
Task task = new Task();
145-
146-
task.setName("Название");
147-
task.setText("Описание");
148-
149-
Assertions.assertEquals("Название", task.getName());
150-
Assertions.assertEquals("Описание", task.getText());
151-
}
152-
153-
@Test
154-
public void shouldCreateSubTaskAndSetProperies() {
155-
SubTask subTask = new SubTask();
156-
157-
subTask.setName("Название");
158-
subTask.setText("Описание");
159-
160-
Assertions.assertEquals("Название", subTask.getName());
161-
Assertions.assertEquals("Описание", subTask.getText());
162-
}
163-
164-
// проверка добавления в историю и чтения из неё
165-
@Test
166-
public void shouldSaveAndReturnOneRecordFromHistory() {
167-
clearHistory();
168-
Task task = new Task();
169-
170-
int taskId = tm.addTask(task);
171-
tm.getTask(taskId);
172-
List<Task> hist = tm.getHistoryManager().getHistory();
173-
174-
Assertions.assertEquals(taskId, hist.get(0).id);
175-
Assertions.assertEquals(1, hist.size());
176-
}
177-
178-
// проверка добавления в историю и чтения из неё ровно 10 элементов
179-
@Test
180-
public void shouldSaveAndReturnTenRecordsFromHistory() {
181-
clearHistory();
182-
int maxHistSize = 10;
183-
184-
for (int i = 0; i < maxHistSize; i++) {
185-
Task task = new Task();
186-
tm.addTask(task);
187-
tm.getTask(task.id);
188-
}
189-
List<Task> hist = tm.getHistoryManager().getHistory();
190-
191-
Assertions.assertTrue(maxHistSize == hist.size());
192-
}
193-
194-
// проверка добавления в историю и чтения из неё ровно 10+1 элементов
195-
@Test
196-
public void shouldSaveAndReturnTenPlusOneRecordFromHistory() {
197-
clearHistory();
198-
int maxHistSize = 10;
199-
200-
for (int i = 0; i < maxHistSize + 1; i++) {
201-
Task task = new Task();
202-
tm.addTask(task);
203-
tm.getTask(task.id);
204-
}
205-
206-
List<Task> hist = tm.getHistoryManager().getHistory();
207-
Assertions.assertTrue(maxHistSize + 1 == hist.size());
208-
}
209-
210-
@Test
211-
public void shouldCreateEpicAndAddSubTaskAndSetProperies() {
212-
Epic epic = new Epic();
213-
SubTask subTask1 = new SubTask();
214-
SubTask subTask2 = new SubTask();
215-
List<Integer> sbTasksIds = new ArrayList<>();
216-
217-
epic.setName("Название Epic").setText("Описание Epic");
218-
subTask1.setName("Название SubTask").setText("Описание SubTask");
219-
subTask2.setName("Название SubTask").setText("Описание SubTask");
220-
sbTasksIds.add(subTask1.id);
221-
sbTasksIds.add(subTask2.id);
222-
epic.setSubTasksIds(sbTasksIds);
223-
224-
Assertions.assertEquals("Название Epic", epic.getName());
225-
Assertions.assertEquals("Описание Epic", epic.getText());
226-
Assertions.assertEquals(2, epic.getSubTasksIds().size());
227-
}
228-
229-
@Test
230-
void addToHistory() {
231-
clearHistory();
232-
Task task = new Task();
233-
234-
tm.addTask(task);
235-
tm.getTask(task.id);
236-
final List<Task> history = hm.getHistory();
237-
238-
assertNotNull(history, "История не пустая.");
239-
assertEquals(1, history.size(), "История не пустая.");
240-
}
241-
242-
@Test
243-
void addNewTask() {
244-
Task task = new Task();
245-
246-
task.setName("Название").setText("Описание");
247-
final int taskSizeInit = tm.getTasks().size();
248-
final int taskId = tm.addTask(task);
249-
final Task savedTask = tm.getTask(taskId);
250-
final List<Task> tasks = tm.getTasks();
251-
252-
assertNotNull(savedTask, "Задача не найдена.");
253-
assertEquals(task, savedTask, "Задачи не совпадают.");
254-
assertNotNull(tasks, "Задачи не возвращаются.");
255-
assertEquals(taskSizeInit + 1, tasks.size(), "Неверное количество задач.");
256-
assertEquals(task, tasks.get(tasks.size() - 1), "Задачи не совпадают.");
257-
}
258-
25934
// Создайте две задачи, эпик с тремя подзадачами и эпик без подзадач.
26035
// Запросите созданные задачи несколько раз в разном порядке.
26136
// После каждого запроса выведите историю и убедитесь, что в ней нет повторов.
@@ -471,8 +246,8 @@ public void shouldWorkAllTaskTogatherLikeInProduction() {
471246
Assertions.assertTrue(tm.getEpic(epic2.id) == null);
472247
}
473248

474-
475249
private void clearHistory() {
476-
tm.getHistoryManager().clear();
250+
InMemoryHistoryManager thm = (InMemoryHistoryManager) tm.getHistoryManager();
251+
thm.clear();
477252
}
478253
}

0 commit comments

Comments
 (0)