优化
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package com.baiyue.file.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baiyue.common.core.exception.BizException;
|
||||
import com.baiyue.file.entity.FileObjectEntity;
|
||||
import com.baiyue.file.mapper.FileObjectMapper;
|
||||
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.springframework.mock.web.MockMultipartFile;
|
||||
|
||||
import java.nio.file.Path;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class LoadingEvidenceServiceTest {
|
||||
@Mock MeasurementImageStorage storage;
|
||||
@Mock FileObjectMapper files;
|
||||
@InjectMocks LoadingEvidenceService service;
|
||||
|
||||
@Test
|
||||
void uploadsEvidenceWithDedicatedBusinessType() {
|
||||
var multipart = new MockMultipartFile("file", "step.jpg", "image/jpeg", new byte[]{1});
|
||||
when(storage.storeLoading(10, 20, multipart)).thenReturn(new MeasurementImageStorage.Stored(
|
||||
"loading-evidence/10/20/a.jpg", Path.of("a.jpg"), "image/jpeg", 1, "hash", "step.jpg"));
|
||||
var result = service.upload(10, 20, 7, "PHOTO_STEP_2", multipart);
|
||||
assertThat(result.businessType()).isEqualTo("LOADING_PHOTO_STEP_2");
|
||||
verify(files).insert(any(FileObjectEntity.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void rejectsUnknownEvidenceType() {
|
||||
var multipart = new MockMultipartFile("file", "x.jpg", "image/jpeg", new byte[]{1});
|
||||
assertThatThrownBy(() -> service.upload(10, 20, 7, "UNKNOWN", multipart)).isInstanceOf(BizException.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void validatesTenantBoundFile() {
|
||||
FileObjectEntity object = new FileObjectEntity();
|
||||
object.setId(30L); object.setOriginalName("seal.jpg"); object.setBusinessType("LOADING_SEAL"); object.setContentType("image/jpeg");
|
||||
when(files.selectOne(any(Wrapper.class))).thenReturn(object);
|
||||
assertThat(service.validate(10, 20, 30).fileId()).isEqualTo(30L);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user