package com.ruoyi.system.service.impl;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.anyList;
|
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.when;
|
|
import java.util.Arrays;
|
import java.util.List;
|
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.mockito.ArgumentCaptor;
|
import org.mockito.InjectMocks;
|
import org.mockito.Mock;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
import com.ruoyi.system.domain.TBatteryGroup;
|
import com.ruoyi.system.domain.TBatteryGroupBattery;
|
import com.ruoyi.system.mapper.TBatteryGroupMapper;
|
|
/** 电池组 Service 单元测试。 */
|
@ExtendWith(MockitoExtension.class)
|
class TBatteryGroupServiceImplTest
|
{
|
@Mock
|
private TBatteryGroupMapper batteryGroupMapper;
|
|
@InjectMocks
|
private TBatteryGroupServiceImpl batteryGroupService;
|
|
@Test
|
void insertShouldPersistBatteriesWithoutTemplate()
|
{
|
TBatteryGroup group = new TBatteryGroup();
|
group.setGroupName(" 样品组 ");
|
group.setModel("M-01");
|
group.setBatteryNos(Arrays.asList(" BAT-01 ", "BAT-02"));
|
group.setCreateBy("admin");
|
when(batteryGroupMapper.selectBatteryGroupByName("样品组")).thenReturn(null);
|
when(batteryGroupMapper.selectBatteryByNo(any(String.class), any())).thenReturn(null);
|
doAnswer(invocation -> {
|
invocation.<TBatteryGroup>getArgument(0).setGroupId(12L);
|
return 1;
|
}).when(batteryGroupMapper).insertBatteryGroup(any(TBatteryGroup.class));
|
|
assertEquals(1, batteryGroupService.insertBatteryGroup(group));
|
|
ArgumentCaptor<List<TBatteryGroupBattery>> captor = ArgumentCaptor.forClass(List.class);
|
verify(batteryGroupMapper).batchInsertBatteries(captor.capture());
|
assertEquals(Arrays.asList("BAT-01", "BAT-02"), captor.getValue().stream()
|
.map(TBatteryGroupBattery::getBatteryNo).toList());
|
verify(batteryGroupMapper, never()).batchInsertRelationFields(anyList());
|
}
|
}
|