公告相关上传
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);
+ }
+}