mvn 命令:mvn clean verify -U -Dcheckstyle.skip -Dmaven.gitcommitid.skip=true
java
import com.futures.busi.proxy.common.service.facade.response.GetDownLoadResultResponse;
import com.futures.busi.proxy.core.service.impl.download.DownLoadServiceImpl;
import com.kucoin.base.exception.BizException;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.*;
import static org.mockito.Mockito.when;
/**
* @author : Timmy 2026/1/19 description :
*/
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
@Slf4j
public class DownLoadServiceImplTest {
@InjectMocks
private DownLoadServiceImpl downLoadServiceImpl;
@Mock
private StringRedisTemplate stringRedisTemplate;
@Test
void getDownLoadResultTest() {
// 参数为空
{
assertThrows(BizException.class, () -> downLoadServiceImpl.getDownLoadResult(null));
}
// 如果状态是成功的,但是下载链接为空,则尝试再次获取 如果依然为空说明下载链接丢失
{
ValueOperations valueOperations = mock(ValueOperations.class);
when(stringRedisTemplate.opsForValue()).thenReturn(valueOperations);
when(valueOperations.get("busi_download_status_prefix_1")).thenReturn("2");
when(valueOperations.get("busi_download_url_prefix_1")).thenReturn(null);
GetDownLoadResultResponse downLoadResult = downLoadServiceImpl.getDownLoadResult("1");
log.info("downLoadResult: {}", downLoadResult);
}
// 如果状态为空 但是下载链接非空 则说明文件生成成功
{
ValueOperations valueOperations = mock(ValueOperations.class);
when(stringRedisTemplate.opsForValue()).thenReturn(valueOperations);
when(valueOperations.get("busi_download_status_prefix_1")).thenReturn(null);
when(valueOperations.get("busi_download_url_prefix_1")).thenReturn("http://test.com/download/1");
GetDownLoadResultResponse downLoadResult = downLoadServiceImpl.getDownLoadResult("1");
log.info("downLoadResult: {}", downLoadResult);
}
}
}