package jnpf.dmsService.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
|
import jnpf.dmsEntity.DmsWenjianBianhaoGuizeEntity;
|
import jnpf.dmsEntity.DmsWenjianBianhaoGuizeFeiqiEntity;
|
import jnpf.dmsMapper.DmsWenjianBianhaoGuizeFeiqiMapper;
|
import jnpf.dmsMapper.DmsWenjianBianhaoGuizeMapper;
|
import jnpf.exception.DataException;
|
import org.apache.ibatis.builder.MapperBuilderAssistant;
|
import org.apache.ibatis.session.Configuration;
|
import org.junit.jupiter.api.BeforeEach;
|
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 java.util.Collections;
|
import java.util.List;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.isNull;
|
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.when;
|
|
@ExtendWith(MockitoExtension.class)
|
class DmsWenjianBianhaoGuizeFeiqiServiceImplTest {
|
|
@Mock private DmsWenjianBianhaoGuizeFeiqiMapper feiqiMapper;
|
@Mock private DmsWenjianBianhaoGuizeMapper guizeMapper;
|
|
@InjectMocks
|
private DmsWenjianBianhaoGuizeFeiqiServiceImpl service;
|
|
@BeforeEach
|
void initTableInfo() {
|
initTableInfo(DmsWenjianBianhaoGuizeFeiqiEntity.class);
|
initTableInfo(DmsWenjianBianhaoGuizeEntity.class);
|
}
|
|
@Test
|
void writesFeiqiIdBackToTheRelatedRuleBeforeDisablingIt() throws DataException {
|
DmsWenjianBianhaoGuizeFeiqiEntity relation = new DmsWenjianBianhaoGuizeFeiqiEntity();
|
relation.setId("feiqi-1");
|
relation.setGuizeId("guize-1");
|
when(feiqiMapper.selectList(any())).thenReturn(Collections.singletonList(relation));
|
when(guizeMapper.selectCount(any())).thenReturn(1L);
|
|
service.feiqiGuize("flow-1", "task-1");
|
|
ArgumentCaptor<LambdaUpdateWrapper> updateCaptor = ArgumentCaptor.forClass(LambdaUpdateWrapper.class);
|
verify(guizeMapper, times(2)).update(isNull(), updateCaptor.capture());
|
List<LambdaUpdateWrapper> updates = updateCaptor.getAllValues();
|
|
LambdaUpdateWrapper feiqiIdUpdate = updates.get(0);
|
assertTrue(feiqiIdUpdate.getSqlSet().contains("feiqi_id"));
|
assertTrue(feiqiIdUpdate.getParamNameValuePairs().containsValue("feiqi-1"));
|
assertTrue(feiqiIdUpdate.getCustomSqlSegment().contains("f_id"));
|
|
assertTrue(updates.get(1).getSqlSet().contains("biz_enabled"));
|
}
|
|
private void initTableInfo(Class<?> entityClass) {
|
if (TableInfoHelper.getTableInfo(entityClass) == null) {
|
TableInfoHelper.initTableInfo(new MapperBuilderAssistant(new Configuration(), ""), entityClass);
|
}
|
}
|
}
|