yeg
2026-08-27 2b64fd747005b44b685e616da71b63c92c536fe3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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());
    }
}