#
Junjie
10 小时以前 cbb00d4729243e4949b3c921fc2f94cb03ca8aaa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.zy.core.thread.support;
 
import com.zy.common.utils.RedisUtil;
import org.junit.jupiter.api.Test;
 
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
 
class RecentStationArrivalTrackerTest {
 
    @Test
    void observe_writesRedisKeyOnlyOnFirstSightingOfLoadedTask() {
        RedisUtil redisUtil = mock(RedisUtil.class);
        RecentStationArrivalTracker tracker = new RecentStationArrivalTracker(redisUtil, 10_000L);
 
        tracker.observe(12, 1001, true);
        tracker.observe(12, 1001, true);
 
        verify(redisUtil).set(eq("station_recent_arrival_12_1001"), eq("1"), eq(10L));
    }
 
    @Test
    void hasRecentArrival_returnsFalseAfterRedisKeyExpires() {
        RedisUtil redisUtil = mock(RedisUtil.class);
        RecentStationArrivalTracker tracker = new RecentStationArrivalTracker(redisUtil, 10_000L);
 
        when(redisUtil.get("station_recent_arrival_12_1001")).thenReturn(null);
        assertFalse(tracker.hasRecentArrival(12, 1001));
    }
 
    @Test
    void hasRecentArrival_returnsTrueWhenRedisKeyExists() {
        RedisUtil redisUtil = mock(RedisUtil.class);
        RecentStationArrivalTracker tracker = new RecentStationArrivalTracker(redisUtil, 10_000L);
 
        when(redisUtil.get("station_recent_arrival_12_1001")).thenReturn("1");
 
        assertTrue(tracker.hasRecentArrival(12, 1001));
    }
}