举报相关上传

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());
+    }
+}