Files
activate-video-service/src/test/java/com/gbg/activate/video/service/ClearExpiredFileServiceImplTest.java

90 lines
3.1 KiB
Java

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