File size: 1,508 Bytes
69fb140
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
45
46
47
48
"""
測試 websocket/manager.py 連線管理器
"""

import pytest
from datetime import datetime, timedelta
from websocket.manager import ConnectionManager


class TestConnectionManager:
    """測試 ConnectionManager 類別"""

    def test_init(self):
        """測試初始化"""
        manager = ConnectionManager()
        assert manager.active_connections == {}
        assert manager.client_info == {}
        assert manager.user_sessions == {}

    def test_is_connected_false(self):
        """測試未連線狀態"""
        manager = ConnectionManager()
        assert manager.is_connected("user123") is False

    def test_get_active_user_count_empty(self):
        """測試空連線數"""
        manager = ConnectionManager()
        assert manager.get_active_user_count() == 0

    def test_client_info(self):
        """測試客戶端資訊存取"""
        manager = ConnectionManager()
        manager.set_client_info("user123", {"device": "iPhone"})
        info = manager.get_client_info("user123")
        assert info == {"device": "iPhone"}

    def test_get_client_info_not_found(self):
        """測試取得不存在的客戶端資訊"""
        manager = ConnectionManager()
        info = manager.get_client_info("nonexistent")
        assert info == {}

    def test_get_user_session_not_found(self):
        """測試取得不存在的會話"""
        manager = ConnectionManager()
        session = manager.get_user_session("nonexistent")
        assert session is None