增加单元测试 -20260616
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
package com.gbg.activate.video.service;
|
||||
|
||||
import com.gbg.activate.video.config.ImageSdkParams;
|
||||
import com.gbg.activate.video.entity.VideoSigningDownloadRecordDO;
|
||||
import com.gbg.activate.video.mapper.VideoSigningDownloadRecordMapper;
|
||||
import com.gbg.activate.video.service.ClearExpiredFileServiceImpl;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
public class ClearExpiredFileServiceImplTest {
|
||||
|
||||
private ClearExpiredFileServiceImpl service;
|
||||
private ImageSdkParams params;
|
||||
private VideoSigningDownloadRecordMapper recordMapper;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
service = new ClearExpiredFileServiceImpl();
|
||||
params = mock(ImageSdkParams.class);
|
||||
recordMapper = mock(VideoSigningDownloadRecordMapper.class);
|
||||
|
||||
// 通过反射注入 mock 对象
|
||||
try {
|
||||
java.lang.reflect.Field paramsField = ClearExpiredFileServiceImpl.class.getDeclaredField("params");
|
||||
paramsField.setAccessible(true);
|
||||
paramsField.set(service, params);
|
||||
|
||||
java.lang.reflect.Field mapperField = ClearExpiredFileServiceImpl.class.getDeclaredField("recordMapper");
|
||||
mapperField.setAccessible(true);
|
||||
mapperField.set(service, recordMapper);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testClearExpiredFilesWithNoRecords() {
|
||||
when(params.getValidDays()).thenReturn(30);
|
||||
when(recordMapper.listExpiredRecords(30)).thenReturn(new ArrayList<>());
|
||||
|
||||
service.clearExpiredFiles();
|
||||
|
||||
verify(recordMapper, times(1)).listExpiredRecords(30);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testClearExpiredFilesWithRecords() {
|
||||
when(params.getValidDays()).thenReturn(30);
|
||||
when(params.getFileSavePath()).thenReturn("/tmp");
|
||||
|
||||
List<VideoSigningDownloadRecordDO> records = new ArrayList<>();
|
||||
VideoSigningDownloadRecordDO record = new VideoSigningDownloadRecordDO();
|
||||
record.setApplicationNumber("APP001");
|
||||
record.setImageId("IMG001");
|
||||
record.setImageName("test.mp4");
|
||||
records.add(record);
|
||||
|
||||
when(recordMapper.listExpiredRecords(30)).thenReturn(records);
|
||||
|
||||
service.clearExpiredFiles();
|
||||
|
||||
verify(recordMapper, times(1)).listExpiredRecords(30);
|
||||
verify(recordMapper, times(1)).deleteByPrimaryKey("APP001", "IMG001");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testClearExpiredFilesWithError() {
|
||||
when(params.getValidDays()).thenReturn(30);
|
||||
when(params.getFileSavePath()).thenReturn(null); // 这将导致异常
|
||||
|
||||
List<VideoSigningDownloadRecordDO> records = new ArrayList<>();
|
||||
VideoSigningDownloadRecordDO record = new VideoSigningDownloadRecordDO();
|
||||
record.setApplicationNumber("APP001");
|
||||
record.setImageId("IMG001");
|
||||
record.setImageName("test.mp4");
|
||||
records.add(record);
|
||||
|
||||
when(recordMapper.listExpiredRecords(30)).thenReturn(records);
|
||||
|
||||
service.clearExpiredFiles();
|
||||
|
||||
verify(recordMapper, times(1)).listExpiredRecords(30);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user