package com.vincent.rsf.server.common.service; import com.vincent.rsf.common.utils.Serialize; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import redis.clients.jedis.Jedis; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) class RedisServiceTest { @Mock private Jedis jedis; private RedisService redisService; @BeforeEach void setUp() { redisService = new RedisService() { @Override public Jedis getJedis() { return jedis; } }; redisService.initialize = true; } @Test void getClosesBorrowedJedisAfterReadingValue() { when(jedis.get("MENU_TREE.FULL_TREE".getBytes())).thenReturn(Serialize.serialize("cached")); String value = redisService.get("MENU_TREE", "FULL_TREE"); assertEquals("cached", value); verify(jedis).close(); } @Test void deleteClosesBorrowedJedisAfterDeletingKey() { when(jedis.del("MENU_TREE.FULL_TREE".getBytes())).thenReturn(1L); Long deleted = redisService.delete("MENU_TREE", "FULL_TREE"); assertEquals(1L, deleted); verify(jedis).close(); } }