package com.ruoyi.web.controller.device; import static org.junit.jupiter.api.Assertions.assertEquals; import java.lang.reflect.Method; import org.junit.jupiter.api.Test; import org.springframework.security.access.prepost.PreAuthorize; class DeviceAdapterControllerPermissionTest { @Test void protectsEachAdapterOperationWithItsOwnRuoyiPermission() throws Exception { assertPermission("list", "@ss.hasPermi('system:deviceAdapter:list')"); assertPermission("getInfo", "@ss.hasPermi('system:deviceAdapter:query')", Long.class); assertPermission("add", "@ss.hasPermi('system:deviceAdapter:add')", com.ruoyi.system.domain.TDeviceAdapter.class); assertPermission("edit", "@ss.hasPermi('system:deviceAdapter:edit')", com.ruoyi.system.domain.TDeviceAdapter.class); assertPermission("changeStatus", "@ss.hasPermi('system:deviceAdapter:changeStatus')", Long.class, DeviceAdapterController.StatusCommand.class); assertPermission("discover", "@ss.hasPermi('system:deviceAdapter:discover')", Long.class); assertPermission("channels", "@ss.hasPermi('system:deviceAdapter:list')", Long.class); } private void assertPermission(String methodName, String expected, Class... parameterTypes) throws Exception { Method method = DeviceAdapterController.class.getMethod(methodName, parameterTypes); assertEquals(expected, method.getAnnotation(PreAuthorize.class).value()); } }