1fb726d48Sopenharmony_ci/*
2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd.
3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License.
5fb726d48Sopenharmony_ci * You may obtain a copy of the License at
6fb726d48Sopenharmony_ci *
7fb726d48Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8fb726d48Sopenharmony_ci *
9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and
13fb726d48Sopenharmony_ci * limitations under the License.
14fb726d48Sopenharmony_ci */
15fb726d48Sopenharmony_ci
16fb726d48Sopenharmony_ciimport { TraceRow } from '../../../../src/trace/component/trace/base/TraceRow';
17fb726d48Sopenharmony_ciimport {
18fb726d48Sopenharmony_ci  energySysEventSender,
19fb726d48Sopenharmony_ci  hiSysEnergyAnomalyDataSender,
20fb726d48Sopenharmony_ci  hiSysEnergyPowerSender,
21fb726d48Sopenharmony_ci  hiSysEnergyStateSender
22fb726d48Sopenharmony_ci} from '../../../../src/trace/database/data-trafic/EnergySysEventSender';
23fb726d48Sopenharmony_ciimport { EnergySystemStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerEnergySystem';
24fb726d48Sopenharmony_ciimport { threadPool } from '../../../../src/trace/database/SqlLite';
25fb726d48Sopenharmony_ciimport { EnergyAnomalyStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerEnergyAnomaly';
26fb726d48Sopenharmony_ciimport { EnergyPowerStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerEnergyPower';
27fb726d48Sopenharmony_ciimport { EnergyStateStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerEnergyState';
28fb726d48Sopenharmony_cijest.mock('../../../../src/js-heap/model/DatabaseStruct', () => {});
29fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => {
30fb726d48Sopenharmony_ci  return {};
31fb726d48Sopenharmony_ci});
32fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => {
33fb726d48Sopenharmony_ci  return {};
34fb726d48Sopenharmony_ci});
35fb726d48Sopenharmony_cidescribe('EnergySysEventSender Test', () => {
36fb726d48Sopenharmony_ci  let systemData = {
37fb726d48Sopenharmony_ci    count: 2,
38fb726d48Sopenharmony_ci    dataType: 1,
39fb726d48Sopenharmony_ci    dur: 13200,
40fb726d48Sopenharmony_ci    frame:
41fb726d48Sopenharmony_ci      {x: 70, y: 45, width: 11, height: 10},
42fb726d48Sopenharmony_ci    id: 73,
43fb726d48Sopenharmony_ci    startNs: 89300,
44fb726d48Sopenharmony_ci    token: 54668,
45fb726d48Sopenharmony_ci    type: 1
46fb726d48Sopenharmony_ci  }
47fb726d48Sopenharmony_ci
48fb726d48Sopenharmony_ci  let anomalyData =
49fb726d48Sopenharmony_ci    {
50fb726d48Sopenharmony_ci      id: 126,
51fb726d48Sopenharmony_ci      startNs: 23840,
52fb726d48Sopenharmony_ci      eventName: "ANOMALY_SCREEN_OFF_ENERGY",
53fb726d48Sopenharmony_ci      appKey: "APPNAME",
54fb726d48Sopenharmony_ci      eventValue: "bt_switch"
55fb726d48Sopenharmony_ci    }
56fb726d48Sopenharmony_ci
57fb726d48Sopenharmony_ci  let powerData = {
58fb726d48Sopenharmony_ci    appKey: "APPNAME",
59fb726d48Sopenharmony_ci    eventName: "POWER_IDE_BLUETOOTH",
60fb726d48Sopenharmony_ci    eventValue: "bt_switch",
61fb726d48Sopenharmony_ci    id: 8940,
62fb726d48Sopenharmony_ci    startNS: 1110
63fb726d48Sopenharmony_ci  }
64fb726d48Sopenharmony_ci
65fb726d48Sopenharmony_ci  let stateData = {
66fb726d48Sopenharmony_ci    dur: 3000,
67fb726d48Sopenharmony_ci    frame: {x: 394, y: 5, width: 1, height: 30},
68fb726d48Sopenharmony_ci    id: 5807,
69fb726d48Sopenharmony_ci    startNs: 49686,
70fb726d48Sopenharmony_ci    type: "WIFI_EVENT_RECEIVED",
71fb726d48Sopenharmony_ci    value: 4
72fb726d48Sopenharmony_ci  }
73fb726d48Sopenharmony_ci
74fb726d48Sopenharmony_ci  it('EnergySysEventSenderTest01', () => {
75fb726d48Sopenharmony_ci    threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => {
76fb726d48Sopenharmony_ci      callback(systemData, 1, true);
77fb726d48Sopenharmony_ci    });
78fb726d48Sopenharmony_ci    let systemTraceRow = TraceRow.skeleton<EnergySystemStruct>();
79fb726d48Sopenharmony_ci    energySysEventSender(systemTraceRow).then(result => {
80fb726d48Sopenharmony_ci      expect(result).toHaveLength(1);
81fb726d48Sopenharmony_ci    })
82fb726d48Sopenharmony_ci  });
83fb726d48Sopenharmony_ci
84fb726d48Sopenharmony_ci  it('EnergySysEventSenderTest02', () => {
85fb726d48Sopenharmony_ci    threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => {
86fb726d48Sopenharmony_ci      callback(anomalyData, 1, true);
87fb726d48Sopenharmony_ci    });
88fb726d48Sopenharmony_ci    let anomalyTraceRow = TraceRow.skeleton<EnergyAnomalyStruct>();
89fb726d48Sopenharmony_ci    hiSysEnergyAnomalyDataSender(anomalyTraceRow).then(result => {
90fb726d48Sopenharmony_ci      expect(result).toHaveLength(1);
91fb726d48Sopenharmony_ci    })
92fb726d48Sopenharmony_ci  });
93fb726d48Sopenharmony_ci
94fb726d48Sopenharmony_ci  it('EnergySysEventSenderTest03', () => {
95fb726d48Sopenharmony_ci    threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => {
96fb726d48Sopenharmony_ci      callback(powerData, 1, true);
97fb726d48Sopenharmony_ci    });
98fb726d48Sopenharmony_ci    let powerTraceRow = TraceRow.skeleton<EnergyPowerStruct>();
99fb726d48Sopenharmony_ci    hiSysEnergyPowerSender(powerTraceRow).then(result => {
100fb726d48Sopenharmony_ci      expect(Array.isArray(result)).toBe(true);
101fb726d48Sopenharmony_ci    })
102fb726d48Sopenharmony_ci  });
103fb726d48Sopenharmony_ci
104fb726d48Sopenharmony_ci  it('EnergySysEventSenderTest04', () => {
105fb726d48Sopenharmony_ci    threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => {
106fb726d48Sopenharmony_ci      callback(stateData, 1, true);
107fb726d48Sopenharmony_ci    });
108fb726d48Sopenharmony_ci    let eventName = ['WIFI_EVENT_RECEIVED'];
109fb726d48Sopenharmony_ci    let stateTraceRow = TraceRow.skeleton<EnergyStateStruct>();
110fb726d48Sopenharmony_ci    hiSysEnergyStateSender(eventName, 0, stateTraceRow).then(result => {
111fb726d48Sopenharmony_ci      expect(result).toHaveLength(1);
112fb726d48Sopenharmony_ci    })
113fb726d48Sopenharmony_ci  });
114fb726d48Sopenharmony_ci});