完成对announce请求的处理,初步完成上传量和下载量的统计
Change-Id: Ief942d0364a11d945a10a5a58d7652a054bedaa4
diff --git a/src/test/java/com/example/g8backend/service/TrackerServiceTest.java b/src/test/java/com/example/g8backend/service/TrackerServiceTest.java
index 829fe15..e2bd4c9 100644
--- a/src/test/java/com/example/g8backend/service/TrackerServiceTest.java
+++ b/src/test/java/com/example/g8backend/service/TrackerServiceTest.java
@@ -4,12 +4,14 @@
import com.example.g8backend.dto.AnnounceResponseDTO;
import com.example.g8backend.entity.Peer;
import com.example.g8backend.mapper.PeerMapper;
+import com.example.g8backend.mapper.UserStatsMapper;
import com.example.g8backend.service.impl.TrackerServiceImpl;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.*;
import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.SetOperations;
@@ -29,9 +31,15 @@
private PeerMapper peerMapper;
@Mock
+ private UserStatsMapper userStatsMapper;
+
+ @Mock
private RedisTemplate<String, Object> redisTemplate;
@Mock
+ private HashOperations<String, Object, Object> hashOperations;
+
+ @Mock
private SetOperations<String, Object> setOperations;
@BeforeEach
@@ -100,12 +108,19 @@
existing.setUploaded(1000.0);
existing.setDownloaded(500.0);
+ Map<Object, Object> redisData = new HashMap<>();
+ redisData.put("uploaded", 1000.0);
+ redisData.put("downloaded", 500.0);
+
when(peerMapper.getPeerByPK("peer2", "infohash", "key123")).thenReturn(existing);
- when(setOperations.members("peers:infohash")).thenReturn(Set.of("peer2"));
when(peerMapper.getPeerByInfoHashAndPeerId("infohash", "peer2")).thenReturn(List.of(new Peer() {{
setIpAddress("192.168.1.1");
setPort(6882);
}}));
+ when(redisTemplate.opsForHash()).thenReturn(hashOperations);
+ when(hashOperations.entries("user:peer:key123:infohash:peer2")).thenReturn(redisData);
+ when(redisTemplate.opsForSet()).thenReturn(setOperations);
+ when(setOperations.members("peers:infohash")).thenReturn(Set.of("peer2"));
AnnounceResponseDTO response = trackerService.handleAnnounce(requestDTO);