mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	完善 dict data 的本地缓存的测试
This commit is contained in:
		| @@ -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 数据 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV