blob: 105cc8b8c5e6e9f27bd0a37efeffeedbe406227e [file] [log] [blame]
ym9232c165162025-06-06 17:54:39 +08001package com.pt5.pthouduan.controller;
2
3import com.pt5.pthouduan.entity.Complain;
4import com.pt5.pthouduan.service.ComplainService;
5import org.junit.jupiter.api.BeforeEach;
6import org.junit.jupiter.api.Test;
7import org.mockito.InjectMocks;
8import org.mockito.Mock;
9import org.mockito.MockitoAnnotations;
10
11import java.util.Arrays;
12import java.util.List;
13
14import static org.junit.jupiter.api.Assertions.*;
15import static org.mockito.Mockito.*;
16
17class ComplainControllerTest {
18
19 @Mock
20 private ComplainService complainService;
21
22 @InjectMocks
23 private ComplainController complainController;
24
25 @BeforeEach
26 void setUp() {
27 MockitoAnnotations.openMocks(this);
28 }
29
30 @Test
31 void createComplain_ShouldReturnCreatedComplain() {
32 Complain complain = new Complain();
33 complain.setComplainid(1);
34 complain.setPuse(100L);
35 complain.setDuser(200L);
36 complain.setContent("Bad behavior");
37 complain.setTorrentid(123L);
38
39 when(complainService.createComplain(any(Complain.class))).thenReturn(complain);
40
41 Complain result = complainController.createComplain(complain);
42
43 assertEquals("Bad behavior", result.getContent());
44 assertEquals(100L, result.getPuse());
45 verify(complainService).createComplain(any(Complain.class));
46 }
47
48 @Test
49 void deleteComplain_ShouldReturnTrue_WhenDeleted() {
50 when(complainService.deleteComplain(1)).thenReturn(true);
51
52 boolean result = complainController.deleteComplain(1);
53
54 assertTrue(result);
55 verify(complainService).deleteComplain(1);
56 }
57
58 @Test
59 void updateComplain_ShouldReturnTrue_WhenUpdated() {
60 Complain complain = new Complain();
61 complain.setComplainid(1);
62 complain.setContent("Updated complaint");
63
64 when(complainService.updateComplain(any(Complain.class))).thenReturn(true);
65
66 boolean result = complainController.updateComplain(complain);
67
68 assertTrue(result);
69 verify(complainService).updateComplain(complain);
70 }
71
72 @Test
73 void getComplainsByTargetUser_ShouldReturnList() {
74 Complain c1 = new Complain();
75 c1.setDuser(200L);
76 c1.setContent("Cheating");
77
78 when(complainService.getComplainsByTargetUser(200L)).thenReturn(List.of(c1));
79
80 List<Complain> result = complainController.getComplainsByTargetUser(200L);
81
82 assertEquals(1, result.size());
83 assertEquals("Cheating", result.get(0).getContent());
84 }
85
86 @Test
87 void getComplainsByPostingUser_ShouldReturnList() {
88 Complain c = new Complain();
89 c.setPuse(100L);
90 c.setContent("Spam complaint");
91
92 when(complainService.getComplainsByPostingUser(100L)).thenReturn(List.of(c));
93
94 List<Complain> result = complainController.getComplainsByPostingUser(100L);
95
96 assertEquals(1, result.size());
97 assertEquals("Spam complaint", result.get(0).getContent());
98 }
99
100 @Test
101 void getAllComplains_ShouldReturnAll() {
102 Complain c1 = new Complain();
103 c1.setContent("Complain A");
104 Complain c2 = new Complain();
105 c2.setContent("Complain B");
106
107 when(complainService.getAllComplains()).thenReturn(Arrays.asList(c1, c2));
108
109 List<Complain> result = complainController.getAllComplains();
110
111 assertEquals(2, result.size());
112 assertEquals("Complain A", result.get(0).getContent());
113 assertEquals("Complain B", result.get(1).getContent());
114 }
115
116 @Test
117 void getComplainInfo_ShouldReturnComplainDetails() {
118 Complain c = new Complain();
119 c.setComplainid(1);
120 c.setPuse(100L);
121 c.setDuser(200L);
122 c.setTorrentid(500L);
123
124 when(complainService.getComplainById(1)).thenReturn(c);
125
126 Complain result = complainController.getComplainInfo(1);
127
128 assertEquals(100L, result.getPuse());
129 assertEquals(200L, result.getDuser());
130 assertEquals(500L, result.getTorrentid());
131 }
132}