package com.ruoyi.quality.controller;
|
|
import com.ruoyi.framework.web.domain.AjaxResult;
|
import com.ruoyi.quality.pojo.QualityUnqualified;
|
import com.ruoyi.quality.service.IQualityUnqualifiedService;
|
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 java.math.BigDecimal;
|
import java.util.Date;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.when;
|
|
@ExtendWith(MockitoExtension.class)
|
class QualityUnqualifiedControllerTest {
|
|
@Mock private IQualityUnqualifiedService service;
|
@InjectMocks private QualityUnqualifiedController controller;
|
|
@Test
|
void addCreatesPendingRecordByDefault() {
|
QualityUnqualified record = pendingRecord();
|
record.setInspectState(null);
|
when(service.save(record)).thenReturn(true);
|
|
AjaxResult result = controller.add(record);
|
|
assertTrue(result.isSuccess());
|
assertEquals(0, record.getInspectState());
|
}
|
|
@Test
|
void addRejectsMissingReason() {
|
QualityUnqualified record = pendingRecord();
|
record.setDefectivePhenomena(" ");
|
|
AjaxResult result = controller.add(record);
|
|
assertTrue(result.isError());
|
assertEquals("请填写不合格原因或现象", result.get(AjaxResult.MSG_TAG));
|
verify(service, never()).save(any());
|
}
|
|
@Test
|
void processedRecordRequiresTreatmentMethod() {
|
QualityUnqualified record = processedRecord();
|
record.setDealType(null);
|
|
AjaxResult result = controller.add(record);
|
|
assertTrue(result.isError());
|
assertEquals("请选择处理方式", result.get(AjaxResult.MSG_TAG));
|
}
|
|
@Test
|
void processedRecordRequiresTreatmentResult() {
|
QualityUnqualified record = processedRecord();
|
record.setDealResult(null);
|
|
AjaxResult result = controller.add(record);
|
|
assertTrue(result.isError());
|
assertEquals("请填写处理结果", result.get(AjaxResult.MSG_TAG));
|
}
|
|
@Test
|
void updateReportsMissingRecord() {
|
QualityUnqualified record = processedRecord();
|
record.setId(99L);
|
when(service.getById(99L)).thenReturn(null);
|
|
AjaxResult result = controller.update(record);
|
|
assertTrue(result.isError());
|
assertEquals("不合格记录不存在", result.get(AjaxResult.MSG_TAG));
|
}
|
|
@Test
|
void updateClosesCompleteRecord() {
|
QualityUnqualified record = processedRecord();
|
record.setId(8L);
|
when(service.getById(8L)).thenReturn(pendingRecord());
|
when(service.updateById(record)).thenReturn(true);
|
|
AjaxResult result = controller.update(record);
|
|
assertTrue(result.isSuccess());
|
}
|
|
private QualityUnqualified pendingRecord() {
|
QualityUnqualified record = new QualityUnqualified();
|
record.setInspectType(0);
|
record.setInspectState(0);
|
record.setProductId(10L);
|
record.setQuantity(BigDecimal.ONE);
|
record.setDefectivePhenomena("表面划伤");
|
return record;
|
}
|
|
private QualityUnqualified processedRecord() {
|
QualityUnqualified record = pendingRecord();
|
record.setInspectState(1);
|
record.setDealType("rework");
|
record.setDealResult("返工后复检合格");
|
record.setDealName("张三");
|
record.setDealTime(new Date());
|
return record;
|
}
|
}
|