File size: 2,258 Bytes
82f9be0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"""
消息结构测试
"""

import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))

import unittest
from datetime import datetime
from src.core import Message


class TestMessage(unittest.TestCase):
    """测试Message类"""
    
    def test_message_creation(self):
        """测试消息创建"""
        timestamp = datetime.now()
        message = Message(
            sender_id="sender-001",
            receiver_id="receiver-001", 
            timestamp=timestamp,
            content="Test message content"
        )
        
        self.assertEqual(message.sender_id, "sender-001")
        self.assertEqual(message.receiver_id, "receiver-001")
        self.assertEqual(message.timestamp, timestamp)
        self.assertEqual(message.content, "Test message content")
    
    def test_message_to_dict(self):
        """测试消息转换为字典"""
        timestamp = datetime.now()
        message = Message(
            sender_id="sender-001",
            receiver_id="receiver-001",
            timestamp=timestamp,
            content="Test message"
        )
        
        message_dict = message.to_dict()
        
        self.assertEqual(message_dict['sender_id'], "sender-001")
        self.assertEqual(message_dict['receiver_id'], "receiver-001")
        self.assertEqual(message_dict['timestamp'], timestamp.isoformat())
        self.assertEqual(message_dict['content'], "Test message")
    
    def test_message_from_dict(self):
        """测试从字典创建消息"""
        timestamp = datetime.now()
        message_dict = {
            'sender_id': 'sender-001',
            'receiver_id': 'receiver-001',
            'timestamp': timestamp.isoformat(),
            'content': 'Test message'
        }
        
        message = Message.from_dict(message_dict)
        
        self.assertEqual(message.sender_id, "sender-001")
        self.assertEqual(message.receiver_id, "receiver-001")
        self.assertEqual(message.content, "Test message")
        # 比较datetime对象可能会有毫秒级差异,所以转换为字符串比较
        self.assertEqual(message.timestamp.isoformat(), timestamp.isoformat())


if __name__ == "__main__":
    unittest.main()