举报相关上传
Change-Id: I3c13243a1442cc4ed00844d1a554f24f7313d8bb
diff --git a/src/test/java/com/pt5/pthouduan/controller/ComplainControllerTest.java b/src/test/java/com/pt5/pthouduan/controller/ComplainControllerTest.java
new file mode 100644
index 0000000..105cc8b
--- /dev/null
+++ b/src/test/java/com/pt5/pthouduan/controller/ComplainControllerTest.java
@@ -0,0 +1,132 @@
+package com.pt5.pthouduan.controller;
+
+import com.pt5.pthouduan.entity.Complain;
+import com.pt5.pthouduan.service.ComplainService;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+class ComplainControllerTest {
+
+ @Mock
+ private ComplainService complainService;
+
+ @InjectMocks
+ private ComplainController complainController;
+
+ @BeforeEach
+ void setUp() {
+ MockitoAnnotations.openMocks(this);
+ }
+
+ @Test
+ void createComplain_ShouldReturnCreatedComplain() {
+ Complain complain = new Complain();
+ complain.setComplainid(1);
+ complain.setPuse(100L);
+ complain.setDuser(200L);
+ complain.setContent("Bad behavior");
+ complain.setTorrentid(123L);
+
+ when(complainService.createComplain(any(Complain.class))).thenReturn(complain);
+
+ Complain result = complainController.createComplain(complain);
+
+ assertEquals("Bad behavior", result.getContent());
+ assertEquals(100L, result.getPuse());
+ verify(complainService).createComplain(any(Complain.class));
+ }
+
+ @Test
+ void deleteComplain_ShouldReturnTrue_WhenDeleted() {
+ when(complainService.deleteComplain(1)).thenReturn(true);
+
+ boolean result = complainController.deleteComplain(1);
+
+ assertTrue(result);
+ verify(complainService).deleteComplain(1);
+ }
+
+ @Test
+ void updateComplain_ShouldReturnTrue_WhenUpdated() {
+ Complain complain = new Complain();
+ complain.setComplainid(1);
+ complain.setContent("Updated complaint");
+
+ when(complainService.updateComplain(any(Complain.class))).thenReturn(true);
+
+ boolean result = complainController.updateComplain(complain);
+
+ assertTrue(result);
+ verify(complainService).updateComplain(complain);
+ }
+
+ @Test
+ void getComplainsByTargetUser_ShouldReturnList() {
+ Complain c1 = new Complain();
+ c1.setDuser(200L);
+ c1.setContent("Cheating");
+
+ when(complainService.getComplainsByTargetUser(200L)).thenReturn(List.of(c1));
+
+ List<Complain> result = complainController.getComplainsByTargetUser(200L);
+
+ assertEquals(1, result.size());
+ assertEquals("Cheating", result.get(0).getContent());
+ }
+
+ @Test
+ void getComplainsByPostingUser_ShouldReturnList() {
+ Complain c = new Complain();
+ c.setPuse(100L);
+ c.setContent("Spam complaint");
+
+ when(complainService.getComplainsByPostingUser(100L)).thenReturn(List.of(c));
+
+ List<Complain> result = complainController.getComplainsByPostingUser(100L);
+
+ assertEquals(1, result.size());
+ assertEquals("Spam complaint", result.get(0).getContent());
+ }
+
+ @Test
+ void getAllComplains_ShouldReturnAll() {
+ Complain c1 = new Complain();
+ c1.setContent("Complain A");
+ Complain c2 = new Complain();
+ c2.setContent("Complain B");
+
+ when(complainService.getAllComplains()).thenReturn(Arrays.asList(c1, c2));
+
+ List<Complain> result = complainController.getAllComplains();
+
+ assertEquals(2, result.size());
+ assertEquals("Complain A", result.get(0).getContent());
+ assertEquals("Complain B", result.get(1).getContent());
+ }
+
+ @Test
+ void getComplainInfo_ShouldReturnComplainDetails() {
+ Complain c = new Complain();
+ c.setComplainid(1);
+ c.setPuse(100L);
+ c.setDuser(200L);
+ c.setTorrentid(500L);
+
+ when(complainService.getComplainById(1)).thenReturn(c);
+
+ Complain result = complainController.getComplainInfo(1);
+
+ assertEquals(100L, result.getPuse());
+ assertEquals(200L, result.getDuser());
+ assertEquals(500L, result.getTorrentid());
+ }
+}