mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2024-11-30 11:11:55 +08:00
完善 dict data 的本地缓存的测试
This commit is contained in:
parent
113e34b279
commit
351d08a2c4
@ -19,4 +19,14 @@ public class ObjectUtils {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T extends Comparable<T>> T max(T obj1, T obj2) {
|
||||||
|
if (obj1 == null) {
|
||||||
|
return obj2;
|
||||||
|
}
|
||||||
|
if (obj2 == null) {
|
||||||
|
return obj1;
|
||||||
|
}
|
||||||
|
return obj1.compareTo(obj2) > 0 ? obj1 : obj2;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14,13 +14,16 @@ import cn.iocoder.dashboard.modules.system.mq.producer.dict.SysDictDataProducer;
|
|||||||
import cn.iocoder.dashboard.modules.system.service.dict.impl.SysDictDataServiceImpl;
|
import cn.iocoder.dashboard.modules.system.service.dict.impl.SysDictDataServiceImpl;
|
||||||
import cn.iocoder.dashboard.util.collection.ArrayUtils;
|
import cn.iocoder.dashboard.util.collection.ArrayUtils;
|
||||||
import cn.iocoder.dashboard.util.object.ObjectUtils;
|
import cn.iocoder.dashboard.util.object.ObjectUtils;
|
||||||
|
import com.google.common.collect.ImmutableTable;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import static cn.hutool.core.bean.BeanUtil.getFieldValue;
|
||||||
import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*;
|
import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*;
|
||||||
import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals;
|
import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals;
|
||||||
import static cn.iocoder.dashboard.util.AssertUtils.assertServiceException;
|
import static cn.iocoder.dashboard.util.AssertUtils.assertServiceException;
|
||||||
@ -193,6 +196,37 @@ public class SysDictDataServiceTest extends BaseSpringBootUnitTest {
|
|||||||
assertServiceException(() -> dictDataService.updateDictData(reqVO), DICT_DATA_NOT_EXISTS);
|
assertServiceException(() -> dictDataService.updateDictData(reqVO), DICT_DATA_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试加载到新的字典数据的情况
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public void testInitLocalCache() {
|
||||||
|
// mock 数据
|
||||||
|
SysDictDataDO dictData01 = randomDictDataDO();
|
||||||
|
dictDataMapper.insert(dictData01);
|
||||||
|
SysDictDataDO dictData02 = randomDictDataDO();
|
||||||
|
dictDataMapper.insert(dictData02);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
dictDataService.initLocalCache();
|
||||||
|
// 断言 labelDictDataCache 缓存
|
||||||
|
ImmutableTable<String, String, SysDictDataDO> labelDictDataCache =
|
||||||
|
(ImmutableTable<String, String, SysDictDataDO>) getFieldValue(dictDataService, "labelDictDataCache");
|
||||||
|
assertEquals(2, labelDictDataCache.size());
|
||||||
|
assertPojoEquals(dictData01, labelDictDataCache.get(dictData01.getDictType(), dictData01.getLabel()));
|
||||||
|
assertPojoEquals(dictData02, labelDictDataCache.get(dictData02.getDictType(), dictData02.getLabel()));
|
||||||
|
// 断言 valueDictDataCache 缓存
|
||||||
|
ImmutableTable<String, String, SysDictDataDO> valueDictDataCache =
|
||||||
|
(ImmutableTable<String, String, SysDictDataDO>) getFieldValue(dictDataService, "valueDictDataCache");
|
||||||
|
assertEquals(2, valueDictDataCache.size());
|
||||||
|
assertPojoEquals(dictData01, valueDictDataCache.get(dictData01.getDictType(), dictData01.getValue()));
|
||||||
|
assertPojoEquals(dictData02, valueDictDataCache.get(dictData02.getDictType(), dictData02.getValue()));
|
||||||
|
// 断言 maxUpdateTime 缓存
|
||||||
|
Date maxUpdateTime = (Date) getFieldValue(dictDataService, "maxUpdateTime");
|
||||||
|
assertEquals(ObjectUtils.max(dictData01.getUpdateTime(), dictData02.getUpdateTime()), maxUpdateTime);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateDictData_dictTypeNotExists() {
|
public void testUpdateDictData_dictTypeNotExists() {
|
||||||
// mock 数据
|
// mock 数据
|
||||||
|
Loading…
Reference in New Issue
Block a user