""" 消息结构测试 """ 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()