公告相关上传

Change-Id: I81fa2661ee5aefbb898697da43e57a83cc6cec35
diff --git a/src/test/java/com/pt5/pthouduan/controller/ActivityControllerTest.java b/src/test/java/com/pt5/pthouduan/controller/ActivityControllerTest.java
new file mode 100644
index 0000000..3d737a9
--- /dev/null
+++ b/src/test/java/com/pt5/pthouduan/controller/ActivityControllerTest.java
@@ -0,0 +1,140 @@
+package com.pt5.pthouduan.controller;
+
+import com.pt5.pthouduan.entity.Activity;
+import com.pt5.pthouduan.service.ActivityService;
+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.time.LocalDateTime;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.*;
+
+class ActivityControllerTest {
+
+    @Mock
+    private ActivityService activityService;
+
+    @InjectMocks
+    private ActivityController activityController;
+
+    @BeforeEach
+    void setUp() {
+        MockitoAnnotations.openMocks(this);
+    }
+
+    @Test
+    void getVisibleActivityPreviews_ShouldReturnPreviewList() {
+        Activity fullActivity = new Activity();
+        fullActivity.setActivityid(1);
+        fullActivity.setTitle("Test");
+        fullActivity.setContent("Content");
+        fullActivity.setAward(10);
+        fullActivity.setPhoto("/activity/photo.jpg");
+        fullActivity.setTime(LocalDateTime.now());
+
+        when(activityService.findByIsShow(0)).thenReturn(Arrays.asList(fullActivity));
+
+        List<Activity> result = activityController.getVisibleActivityPreviews();
+
+        assertEquals(1, result.size());
+        assertEquals("Test", result.get(0).getTitle());
+        assertEquals("/activity/photo.jpg", result.get(0).getPhoto());
+    }
+
+    @Test
+    void getVisibleActivities_ShouldReturnList() {
+        Activity activity = new Activity();
+        activity.setActivityid(1);
+        activity.setTitle("Visible Activity");
+
+        when(activityService.findByIsShow(0)).thenReturn(List.of(activity));
+
+        List<Activity> result = activityController.getVisibleActivities();
+
+        assertEquals(1, result.size());
+        assertEquals("Visible Activity", result.get(0).getTitle());
+    }
+
+    @Test
+    void createActivity_ShouldReturnTrue_WhenSaved() {
+        when(activityService.save(any(Activity.class))).thenReturn(true);
+
+        boolean result = activityController.createActivity(
+                "New Title", "New Content", null, 0, 5
+        );
+
+        assertTrue(result);
+        verify(activityService).save(any(Activity.class));
+    }
+
+    @Test
+    void deleteActivity_ShouldReturnTrue_WhenDeleted() {
+        when(activityService.removeById(1)).thenReturn(true);
+
+        boolean result = activityController.deleteActivity(1);
+
+        assertTrue(result);
+        verify(activityService).removeById(1);
+    }
+
+    @Test
+    void getAllActivities_ShouldReturnAllActivities() {
+        Activity a1 = new Activity();
+        a1.setTitle("A1");
+
+        Activity a2 = new Activity();
+        a2.setTitle("A2");
+
+        when(activityService.list()).thenReturn(List.of(a1, a2));
+
+        List<Activity> result = activityController.getAllActivities();
+
+        assertEquals(2, result.size());
+        assertEquals("A1", result.get(0).getTitle());
+        assertEquals("A2", result.get(1).getTitle());
+    }
+
+    @Test
+    void searchActivitiesByTitle_ShouldReturnMatchingActivities() {
+        Activity match = new Activity();
+        match.setTitle("Matched");
+
+        when(activityService.searchByTitle("Match")).thenReturn(List.of(match));
+
+        List<Activity> result = activityController.searchActivitiesByTitle("Match");
+
+        assertEquals(1, result.size());
+        assertEquals("Matched", result.get(0).getTitle());
+    }
+
+    @Test
+    void updateActivity_ShouldReturnTrue_WhenSuccessful() {
+        Activity existing = new Activity();
+        existing.setActivityid(1);
+        existing.setTitle("Old");
+
+        when(activityService.getById(1)).thenReturn(existing);
+        when(activityService.updateById(any(Activity.class))).thenReturn(true);
+
+        boolean result = activityController.updateActivity(1, "New Title", "New Content", null, 1, 10);
+
+        assertTrue(result);
+        verify(activityService).updateById(any(Activity.class));
+    }
+
+    @Test
+    void updateActivity_ShouldReturnFalse_WhenActivityNotFound() {
+        when(activityService.getById(999)).thenReturn(null);
+
+        boolean result = activityController.updateActivity(999, "Title", "Content", null, 0, 0);
+
+        assertFalse(result);
+    }
+}