Repository navigation
Expand file tree
/
Copy pathTopicControllerTest.java
More file actions
69 lines (55 loc) · 2.08 KB
/
Copy pathTopicControllerTest.java
File metadata and controls
69 lines (55 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package hello.controller;
import hello.model.Topic;
import hello.service.TopicService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
class TopicControllerTest {
private TopicController controller;
@BeforeEach
void setUp() throws Exception {
controller = new TopicController();
Field field = TopicController.class.getDeclaredField("topicService");
field.setAccessible(true);
field.set(controller, new TopicService());
}
private List<String> ids(List<Topic> topics) {
return topics.stream().map(Topic::getId).collect(Collectors.toList());
}
@Test
void getAllTopicsDelegatesToService() {
assertEquals(Arrays.asList("spring", "java", "javascript"), ids(controller.getAllTopics()));
}
@Test
void getTopicWithIdDelegatesToService() {
assertEquals("Core Java", controller.getTopicWithID("java").getSubjectName());
}
@Test
void addTopicDelegatesToService() {
controller.addTopic(new Topic("go", "Go Lang", "Go Description"));
assertEquals(4, controller.getAllTopics().size());
}
@Test
void updateTopicDelegatesToService() {
controller.updateTopic("java", new Topic("java", "Modern Java", "Updated"));
assertEquals("Modern Java", controller.getTopicWithID("java").getSubjectName());
}
@Test
void deleteTopicDelegatesToService() {
controller.deleteTopic("java");
assertFalse(ids(controller.getAllTopics()).contains("java"));
}
@Test
void filterMinimumLengthForIdDelegatesToService() {
assertEquals(Arrays.asList("javascript"), ids(controller.filterMinimumLengthForId(6)));
}
@Test
void sortTopicsWithIdDelegatesToService() {
assertEquals(Arrays.asList("java", "javascript", "spring"), ids(controller.sortTopicsWithID()));
}
}