1/* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { 17 systemDataSql, 18 chartEnergyAnomalyDataSql, 19 queryPowerValueSql, 20 queryStateDataSql, 21 queryStateProtoDataSql, 22 energySysEventReceiver, 23 hiSysEnergyAnomalyDataReceiver, 24 hiSysEnergyStateReceiver, 25 hiSysEnergyPowerReceiver 26} from '../../../../src/trace/database/data-trafic/EnergySysEventReceiver'; 27import { TraficEnum } from '../../../../src/trace/database/data-trafic/utils/QueryEnum'; 28 29describe('EnergySysEventReceiver Test', () => { 30 let data; 31 let proc; 32 beforeEach(() => { 33 data = { 34 params: { 35 trafic: TraficEnum.ProtoBuffer, 36 sharedArrayBuffers: { 37 id: new Uint16Array([1, 2, 3]), 38 }, 39 }, 40 }; 41 proc = jest.fn((sql) => [ 42 {energyData: {id: 1, startNs: 4.4, eventName: '', appKey: '', eventValue: ''}}, 43 {energyData: {id: 2, startNs: 5.5, eventName: '', appKey: '', eventValue: ''}}, 44 {energyData: {id: 3, startNs: 5.5, eventName: '', appKey: '', eventValue: ''}}, 45 {energyData: {id: 4, startNs: 5.5, eventName: '', appKey: '', eventValue: ''}}, 46 {energyData: {id: 5, startNs: 5.5, eventName: '', appKey: '', eventValue: ''}}, 47 ]); 48 }); 49 it('EnergySysEventReceiverTest01', () => { 50 let args = { 51 recordStartNS: 1000, 52 endNS: 3000, 53 startNS: 2000, 54 width: 10 55 }; 56 expect(systemDataSql(args)).toBeTruthy(); 57 expect(chartEnergyAnomalyDataSql(args)).toBeTruthy(); 58 expect(queryPowerValueSql(args)).toBeTruthy(); 59 expect(queryStateDataSql(args)).toBeTruthy(); 60 expect(queryStateProtoDataSql(args)).toBeTruthy(); 61 }); 62 it('EnergySysEventReceiverTest02', () => { 63 let mockPostMessage = jest.fn(); 64 global.postMessage = mockPostMessage; 65 hiSysEnergyAnomalyDataReceiver(data, proc); 66 hiSysEnergyPowerReceiver(data, proc); 67 hiSysEnergyStateReceiver(data, proc); 68 expect(mockPostMessage).toHaveBeenCalledTimes(3); 69 }); 70 it('EnergySysEventReceiverTest03', () => { 71 let systemData = { 72 params: { 73 trafic: TraficEnum.ProtoBuffer, 74 sharedArrayBuffers: { 75 id: new Uint16Array([1, 2, 3]), 76 }, 77 }, 78 }; 79 let systemEventvalue = { 80 'LOG_LEVEL': 2, 81 'MESSAGE': 'token=548210734912', 82 'NAME': 'backGround', 83 'PID': 4192, 84 'STATE': 1, 85 'TAG': 'DUBAI_TAG_RUNNINGLOCK_ADD', 86 'TYPE': 1, 87 'UID': 20010034 88 }; 89 let systemEventvalueJson = JSON.stringify(systemEventvalue); 90 let systemProc = jest.fn((sql) => [ 91 { 92 energyData: { 93 id: 1, 94 startNs: 4.4, 95 eventName: 'POWER_RUNNINGLOCK', 96 appKey: '1', 97 eventValue: systemEventvalueJson 98 } 99 }, 100 ]); 101 let mockPostMessage = jest.fn(); 102 global.postMessage = mockPostMessage; 103 energySysEventReceiver(systemData, systemProc); 104 expect(mockPostMessage).toHaveBeenCalledTimes(1); 105 }); 106 it('EnergySysEventReceiverTest04', () => { 107 let systemData = { 108 params: { 109 trafic: TraficEnum.ProtoBuffer, 110 sharedArrayBuffers: { 111 id: new Uint16Array([1, 2, 3]), 112 }, 113 }, 114 }; 115 let systemEventvalue = { 116 'LOG_LEVEL': 2, 117 'MESSAGE': 'token=548210734912', 118 'NAME': 'backGround', 119 'PID': 4192, 120 'STATE': 1, 121 'TAG': 'DUBAI_TAG_RUNNINGLOCK', 122 'TYPE': 1, 123 'UID': 20010034 124 }; 125 let systemEventvalueJson = JSON.stringify(systemEventvalue); 126 let systemProc = jest.fn((sql) => [ 127 { 128 energyData: { 129 id: 1, 130 startNs: 4.4, 131 eventName: 'POWER_RUNNINGLOCK', 132 appKey: '1', 133 eventValue: systemEventvalueJson 134 } 135 }, 136 ]); 137 let mockPostMessage = jest.fn(); 138 global.postMessage = mockPostMessage; 139 energySysEventReceiver(systemData, systemProc); 140 expect(mockPostMessage).toHaveBeenCalledTimes(1); 141 }); 142 it('EnergySysEventReceiverTest05', () => { 143 let systemData = { 144 params: { 145 trafic: TraficEnum.ProtoBuffer, 146 sharedArrayBuffers: { 147 id: new Uint16Array([1, 2, 3]), 148 }, 149 }, 150 }; 151 let systemEventvalue = { 152 'LOG_LEVEL': 2, 153 'MESSAGE': 'token=548210734912', 154 'NAME': 'backGround', 155 'PID': 4192, 156 'STATE': 'stop', 157 'TAG': 'DUBAI_TAG_RUNNINGLOCK', 158 'TYPE': 1, 159 'UID': 20010034 160 }; 161 let systemEventvalueJson = JSON.stringify(systemEventvalue); 162 let systemProc = jest.fn((sql) => [ 163 {energyData: {id: 1, startNs: 4.4, eventName: 'GNSS_STATE', appKey: '1', eventValue: systemEventvalueJson}}, 164 ]); 165 let mockPostMessage = jest.fn(); 166 global.postMessage = mockPostMessage; 167 energySysEventReceiver(systemData, systemProc); 168 expect(mockPostMessage).toHaveBeenCalledTimes(1); 169 }); 170 it('EnergySysEventReceiverTest06', () => { 171 let systemData = { 172 params: { 173 trafic: TraficEnum.ProtoBuffer, 174 sharedArrayBuffers: { 175 id: new Uint16Array([1, 2, 3]), 176 }, 177 }, 178 }; 179 let systemEventvalue = { 180 'LOG_LEVEL': 2, 181 'MESSAGE': 'token=548210734912', 182 'NAME': 'backGround', 183 'PID': 4192, 184 'STATE': 'stop', 185 'TAG': 'DUBAI_TAG_RUNNINGLOCK', 186 'TYPE': 1, 187 'UID': 20010034 188 }; 189 let systemEventvalueJson = JSON.stringify(systemEventvalue); 190 let systemProc = jest.fn((sql) => [ 191 {energyData: {id: 1, startNs: 4.4, eventName: 'GNSS_STATE', appKey: '1', eventValue: systemEventvalueJson}}, 192 ]); 193 let mockPostMessage = jest.fn(); 194 global.postMessage = mockPostMessage; 195 energySysEventReceiver(systemData, systemProc); 196 expect(mockPostMessage).toHaveBeenCalledTimes(1); 197 }); 198 it('EnergySysEventReceiverTest07', () => { 199 let systemData = { 200 params: { 201 trafic: TraficEnum.ProtoBuffer, 202 sharedArrayBuffers: { 203 id: new Uint16Array([1, 2, 3]), 204 }, 205 }, 206 }; 207 let systemEventvalue = { 208 'LOG_LEVEL': 2, 209 'MESSAGE': 'token=548210734912', 210 'NAME': 'WORK_START', 211 'PID': 4192, 212 'STATE': 'stop', 213 'TAG': 'DUBAI_TAG_RUNNINGLOCK', 214 'TYPE': 1, 215 'UID': 20010034 216 }; 217 let systemEventvalueJson = JSON.stringify(systemEventvalue); 218 let systemProc = jest.fn((sql) => [ 219 {energyData: {id: 1, startNs: 4.4, eventName: 'WORK_START', appKey: '1', eventValue: systemEventvalueJson}}, 220 ]); 221 let mockPostMessage = jest.fn(); 222 global.postMessage = mockPostMessage; 223 energySysEventReceiver(systemData, systemProc); 224 expect(mockPostMessage).toHaveBeenCalledTimes(1); 225 }); 226});