package com.cf.imes.module.system.dal.redis.listener;

import com.cf.imes.module.system.util.locale.DictDataI18nCacheUtils;
import org.junit.jupiter.api.Test;
import org.springframework.data.redis.connection.DefaultMessage;
import org.springframework.data.redis.connection.Message;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

/**
 * {@link SystemDictDataI18nCacheRefreshRedisListener} 的单元测试
 *
 * @author Gqr
 * @since 2025/12/15 10:11
 */
class SystemDictDataI18nCacheRefreshRedisListenerTest {
    @Test
    void onMessage_shouldClearDictDataI18nCache() {
        // given
        SystemDictDataI18nCacheRefreshRedisListener listener =
                new SystemDictDataI18nCacheRefreshRedisListener();

        Message message = new DefaultMessage(
                "test".getBytes(),
                "test-channel".getBytes()
        );

        // mock 静态方法
        DictDataI18nCacheUtils dictDataI18nCacheUtils = mock(DictDataI18nCacheUtils.class);

        // when
        listener.onMessage(message, null);

        // then
        verify(dictDataI18nCacheUtils, times(1)).clearCache();
    }
}
