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 updateCaptor = ArgumentCaptor.forClass(LambdaUpdateWrapper.class); verify(guizeMapper, times(2)).update(isNull(), updateCaptor.capture()); List 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); } } }