package com.vincent.rsf.server.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.common.service.RedisService;
import com.vincent.rsf.server.system.entity.Menu;
import com.vincent.rsf.server.system.service.MenuService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.test.util.ReflectionTestUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class MenuControllerTest {
private static final String MENU_TREE_CACHE_FLAG = "MENU_TREE";
private static final String MENU_TREE_CACHE_KEY = "FULL_TREE";
@Mock
private MenuService menuService;
@Mock
private RedisService redisService;
private MenuController menuController;
@BeforeEach
void setUp() {
menuController = new MenuController();
ReflectionTestUtils.setField(menuController, "menuService", menuService);
ReflectionTestUtils.setField(menuController, "redisService", redisService);
}
@Test
void treeReturnsCachedTreeBeforeQueryingDatabase() {
List