package com.ruoyi.integration.iotda.enums; import org.junit.jupiter.api.Test; import java.util.HashSet; import java.util.Set; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; /** * IoTDA service_id 枚举完整性测试: * 防止历史"key 恒为 null"类构造/取值错误回归,保证协议下发应答可正常匹配。 */ class ServiceIdMenuTest { @Test void allKeysAndValuesPresent() { for (ServiceIdMenu menu : ServiceIdMenu.values()) { assertNotNull(menu.getKey(), "枚举 " + menu.name() + " 的 key(中文描述) 为空"); assertNotNull(menu.getValue(), "枚举 " + menu.name() + " 的 value(service_id) 为空"); assertFalse(menu.getKey().trim().isEmpty(), "枚举 " + menu.name() + " 的 key(中文描述) 为空白"); assertFalse(menu.getValue().trim().isEmpty(), "枚举 " + menu.name() + " 的 value(service_id) 为空白"); } } @Test void serviceIdValuesAreGloballyUnique() { Set seen = new HashSet<>(); for (ServiceIdMenu menu : ServiceIdMenu.values()) { assertFalse(seen.contains(menu.getValue()), "service_id 重复定义:" + menu.getValue() + "(" + menu.name() + ")"); seen.add(menu.getValue()); } assertEquals(ServiceIdMenu.values().length, seen.size()); } }