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 { TraceRow } from '../../../../src/trace/component/trace/base/TraceRow'; 17import { 18 energySysEventSender, 19 hiSysEnergyAnomalyDataSender, 20 hiSysEnergyPowerSender, 21 hiSysEnergyStateSender 22} from '../../../../src/trace/database/data-trafic/EnergySysEventSender'; 23import { EnergySystemStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerEnergySystem'; 24import { threadPool } from '../../../../src/trace/database/SqlLite'; 25import { EnergyAnomalyStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerEnergyAnomaly'; 26import { EnergyPowerStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerEnergyPower'; 27import { EnergyStateStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerEnergyState'; 28jest.mock('../../../../src/js-heap/model/DatabaseStruct', () => {}); 29jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => { 30 return {}; 31}); 32jest.mock('../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => { 33 return {}; 34}); 35describe('EnergySysEventSender Test', () => { 36 let systemData = { 37 count: 2, 38 dataType: 1, 39 dur: 13200, 40 frame: 41 {x: 70, y: 45, width: 11, height: 10}, 42 id: 73, 43 startNs: 89300, 44 token: 54668, 45 type: 1 46 } 47 48 let anomalyData = 49 { 50 id: 126, 51 startNs: 23840, 52 eventName: "ANOMALY_SCREEN_OFF_ENERGY", 53 appKey: "APPNAME", 54 eventValue: "bt_switch" 55 } 56 57 let powerData = { 58 appKey: "APPNAME", 59 eventName: "POWER_IDE_BLUETOOTH", 60 eventValue: "bt_switch", 61 id: 8940, 62 startNS: 1110 63 } 64 65 let stateData = { 66 dur: 3000, 67 frame: {x: 394, y: 5, width: 1, height: 30}, 68 id: 5807, 69 startNs: 49686, 70 type: "WIFI_EVENT_RECEIVED", 71 value: 4 72 } 73 74 it('EnergySysEventSenderTest01', () => { 75 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 76 callback(systemData, 1, true); 77 }); 78 let systemTraceRow = TraceRow.skeleton<EnergySystemStruct>(); 79 energySysEventSender(systemTraceRow).then(result => { 80 expect(result).toHaveLength(1); 81 }) 82 }); 83 84 it('EnergySysEventSenderTest02', () => { 85 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 86 callback(anomalyData, 1, true); 87 }); 88 let anomalyTraceRow = TraceRow.skeleton<EnergyAnomalyStruct>(); 89 hiSysEnergyAnomalyDataSender(anomalyTraceRow).then(result => { 90 expect(result).toHaveLength(1); 91 }) 92 }); 93 94 it('EnergySysEventSenderTest03', () => { 95 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 96 callback(powerData, 1, true); 97 }); 98 let powerTraceRow = TraceRow.skeleton<EnergyPowerStruct>(); 99 hiSysEnergyPowerSender(powerTraceRow).then(result => { 100 expect(Array.isArray(result)).toBe(true); 101 }) 102 }); 103 104 it('EnergySysEventSenderTest04', () => { 105 threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 106 callback(stateData, 1, true); 107 }); 108 let eventName = ['WIFI_EVENT_RECEIVED']; 109 let stateTraceRow = TraceRow.skeleton<EnergyStateStruct>(); 110 hiSysEnergyStateSender(eventName, 0, stateTraceRow).then(result => { 111 expect(result).toHaveLength(1); 112 }) 113 }); 114});