| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package com.ruoyi.app.user;
- import com.ruoyi.app.mendian.FoodSpecController;
- import com.ruoyi.app.mendian.PosFenleiController;
- import com.ruoyi.app.mendian.PosFoodController;
- import com.ruoyi.app.mendian.PosStoreController;
- import com.ruoyi.app.order.PosOrderController;
- import com.ruoyi.app.order.PosOrderShOprateController;
- import com.ruoyi.system.utils.Auth;
- import org.junit.jupiter.api.Test;
- import java.lang.reflect.Method;
- import java.util.Arrays;
- import static org.junit.jupiter.api.Assertions.assertNotNull;
- import static org.junit.jupiter.api.Assertions.assertTrue;
- class MerchantSessionAuthAnnotationTest {
- @Test
- void merchantEndpointsRequireServerSessionValidation() {
- assertSessionAuth(MerchantSubaccountController.class,
- "list", "create", "update", "updatePassword", "updateStatus");
- assertSessionAuth(InfoUserController.class, "merchantLogout");
- assertSessionAuth(FoodSpecController.class,
- "foodSpecPageList", "saveFoodSpec", "getSpecs", "deleteFoodSpec",
- "getAvailableSpecsList", "changeOpen", "changeSpecValueOpen");
- assertSessionAuth(PosFenleiController.class, "delefenlei", "addfenlei");
- assertSessionAuth(PosFoodController.class,
- "delefood", "changerecommend", "setposfood", "getidlist", "getFoodPageList");
- assertSessionAuth(PosStoreController.class,
- "delemendian", "storelistlist", "getmystorelist", "addmendian",
- "getMdBusinessHours", "saveMdBusinessHours");
- assertSessionAuth(PosOrderController.class,
- "setorderuzt", "getorderxq", "getstoreorderlist");
- assertSessionAuth(PosOrderShOprateController.class,
- "getInvoice", "invalidInvoice", "createOrder", "acceptOrder", "dispatchOrder",
- "completeOrder", "confirmCashPayment", "cancelOrder", "orderList", "orderDetail");
- }
- private void assertSessionAuth(Class<?> controllerType, String... methodNames) {
- for (String methodName : methodNames) {
- Method method = Arrays.stream(controllerType.getDeclaredMethods())
- .filter(candidate -> candidate.getName().equals(methodName))
- .findFirst()
- .orElseThrow(() -> new AssertionError(controllerType.getSimpleName()
- + "." + methodName + " not found"));
- Auth auth = method.getAnnotation(Auth.class);
- assertNotNull(auth, controllerType.getSimpleName() + "." + methodName
- + " must declare @Auth");
- assertTrue(auth.session(), controllerType.getSimpleName() + "." + methodName
- + " must validate the Redis session");
- }
- }
- }
|