fei.wang
7 天以前 ae7b22322555448d95fd56f505bafa325c167a26
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/**
 * 报文文件管理器测试脚本
 * 用于验证55AA51报文解析和文件记录功能
 */
 
// 模拟uni-app环境
global.uni = {
  getSystemInfoSync: () => ({ platform: 'android' }),
  getFileSystemManager: () => ({
    writeFile: (options) => {
      console.log('写入文件:', options.filePath);
      console.log('文件内容:', options.data);
      options.success && options.success();
    },
    appendFile: (options) => {
      console.log('追加文件:', options.filePath);
      console.log('追加内容:', options.data);
      options.success && options.success();
    }
  })
};
 
// 模拟plus环境
global.plus = {
  io: {
    convertLocalFileSystemURL: (path) => `/storage/emulated/0/Download/${path}`,
    PRIVATE_DOC: 'private_doc'
  }
};
 
// 导入报文文件管理器
const { MessageFileManager } = require('./utils/messageFileManager.js');
 
async function testMessageFileManager() {
  console.log('=== 开始测试报文文件管理器 ===\n');
  
  // 创建管理器实例
  const manager = new MessageFileManager();
  
  try {
    // 1. 测试初始化
    console.log('1. 测试初始化...');
    const initResult = await manager.initialize();
    console.log('初始化结果:', initResult ? '成功' : '失败');
    console.log('文件信息:', manager.getFileInfo());
    console.log('');
    
    // 2. 测试报文解析
    console.log('2. 测试报文解析...');
    const testMessage = '55AA5128221111110F74011E000000086464000000001144AA5601CDFF0000016424000000000000000014FA';
    const parsedData = manager.parseAoaMessage(testMessage);
    console.log('解析结果:', parsedData);
    console.log('');
    
    // 3. 测试文件写入
    console.log('3. 测试文件写入...');
    await manager.parseAndWriteMessage(testMessage);
    console.log('文件写入完成');
    console.log('');
    
    // 4. 测试多个报文
    console.log('4. 测试多个报文...');
    const testMessages = [
      '55AA5128221111110F74011E000000086464000000001144AA5601CDFF0000016424000000000000000014FA',
      '55AA5128222222220F74011E000000086464000000002244AA5601CDFF0000016424000000000000000024FA',
      '55AA5128223333330F74011E000000086464000000003344AA5601CDFF0000016424000000000000000034FA'
    ];
    
    for (let i = 0; i < testMessages.length; i++) {
      console.log(`写入报文 ${i + 1}:`, testMessages[i]);
      await manager.parseAndWriteMessage(testMessages[i]);
    }
    console.log('');
    
    // 5. 测试错误处理
    console.log('5. 测试错误处理...');
    const invalidMessage = '55AA500000000000000000000000000000000000000000000000000000000000000000000000';
    const invalidResult = manager.parseAoaMessage(invalidMessage);
    console.log('无效报文解析结果:', invalidResult);
    console.log('');
    
    // 6. 显示最终状态
    console.log('6. 最终状态...');
    const finalInfo = manager.getFileInfo();
    console.log('文件信息:', finalInfo);
    console.log('');
    
    console.log('=== 测试完成 ===');
    
  } catch (error) {
    console.error('测试过程中发生错误:', error);
  }
}
 
// 运行测试
testMessageFileManager();