获得当前正在做种用户功能

Change-Id: I29869241a5e145b0baab1632ed699a3fe08f7a0b
diff --git a/src/main/java/com/pt5/pthouduan/controller/TorrentController.java b/src/main/java/com/pt5/pthouduan/controller/TorrentController.java
index 5ff49aa..b623e7a 100644
--- a/src/main/java/com/pt5/pthouduan/controller/TorrentController.java
+++ b/src/main/java/com/pt5/pthouduan/controller/TorrentController.java
@@ -57,12 +57,12 @@
 
 
 
-//    @GetMapping("/{infoHash}/seeders")
-//    public ResponseEntity<List<PeerInfo>> getSeedersByInfoHash(@PathVariable String infoHash) {
-//        List<PeerInfo> seeders = peerService.getSeedersByInfoHash(infoHash.toUpperCase());
-//        System.out.println("Response: " + seeders);
-//        return ResponseEntity.ok(seeders);
-//    }
+    @GetMapping("/{infoHash}/seeders")
+    public ResponseEntity<List<PeerInfo>> getSeedersByInfoHash(@PathVariable String infoHash) {
+        List<PeerInfo> seeders = peerService.getSeedersByInfoHash(infoHash.toUpperCase());
+        System.out.println("Response: " + seeders);
+        return ResponseEntity.ok(seeders);
+    }
 
     //添加搜索
     @GetMapping("/search")
diff --git a/src/test/java/com/pt5/pthouduan/ControllerTest/TorrentSeederControllerTest.java b/src/test/java/com/pt5/pthouduan/ControllerTest/TorrentSeederControllerTest.java
new file mode 100644
index 0000000..69cbc9a
--- /dev/null
+++ b/src/test/java/com/pt5/pthouduan/ControllerTest/TorrentSeederControllerTest.java
@@ -0,0 +1,78 @@
+package com.pt5.pthouduan.ControllerTest;
+
+import com.pt5.pthouduan.controller.TorrentController;
+import com.pt5.pthouduan.entity.PeerInfo;
+import com.pt5.pthouduan.service.TorrentService;
+import com.pt5.pthouduan.service.impl.PeerService;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static org.mockito.Mockito.when;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+//static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+class TorrentSeederControllerTest {
+
+    @Mock
+    private TorrentService torrentService;
+
+    @Mock
+    private PeerService peerService;
+
+
+    @InjectMocks
+    private TorrentController torrentController;
+
+    private MockMvc mockMvc;
+
+    @BeforeEach
+    void setUp() {
+        MockitoAnnotations.openMocks(this);
+        mockMvc = MockMvcBuilders.standaloneSetup(torrentController).build();
+    }
+
+    @Test
+    void getSeedersByInfoHash_ShouldReturnPeers() throws Exception {
+        // Arrange
+        String infoHash = "ABC123";
+        PeerInfo peer1 = new PeerInfo();
+        PeerInfo peer2 = new PeerInfo();
+        List<PeerInfo> peers = Arrays.asList(peer1, peer2);
+
+        // 假设torrentService有一个方法返回PeerInfo列表
+        // 这里需要根据实际torrentService的API进行调整
+        when(peerService.getSeedersByInfoHash(infoHash)).thenReturn(peers);
+
+        // Act & Assert
+        mockMvc.perform(get("/torrent/{infoHash}/seeders", infoHash))
+                .andExpect(status().isOk())
+                .andExpect(jsonPath("$").isArray())
+                .andExpect(jsonPath("$.length()").value(2));
+    }
+
+    @Test
+    void getSeedersByInfoHash_ShouldReturnEmptyListWhenNoPeers() throws Exception {
+        // Arrange
+        String infoHash = "ABC123";
+
+        // 假设torrentService有一个方法返回空列表
+        when(peerService.getSeedersByInfoHash(infoHash)).thenReturn(Collections.emptyList());
+
+        // Act & Assert
+        mockMvc.perform(get("/torrent/{infoHash}/seeders", infoHash))
+                .andExpect(status().isOk())
+                .andExpect(jsonPath("$").isArray())
+                .andExpect(jsonPath("$.length()").value(0));
+    }
+}
\ No newline at end of file