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 { FuncStruct } from '../../../src/trace/bean/FuncStruct';
17fb726d48Sopenharmony_cijest.mock('../../../src/trace/component/trace/base/TraceRow', () => {
18fb726d48Sopenharmony_ci  return {};
19fb726d48Sopenharmony_ci});
20fb726d48Sopenharmony_ci
21fb726d48Sopenharmony_cidescribe('FuncStruct Test', () => {
22fb726d48Sopenharmony_ci  const canvas = document.createElement('canvas');
23fb726d48Sopenharmony_ci  canvas.width = 1;
24fb726d48Sopenharmony_ci  canvas.height = 1;
25fb726d48Sopenharmony_ci  const ctx = canvas.getContext('2d');
26fb726d48Sopenharmony_ci
27fb726d48Sopenharmony_ci  const dataResource = {
28fb726d48Sopenharmony_ci    frame: {
29fb726d48Sopenharmony_ci      x: 20,
30fb726d48Sopenharmony_ci      y: 20,
31fb726d48Sopenharmony_ci    },
32fb726d48Sopenharmony_ci  };
33fb726d48Sopenharmony_ci
34fb726d48Sopenharmony_ci  const durData = {
35fb726d48Sopenharmony_ci    frame: {
36fb726d48Sopenharmony_ci      x: 20,
37fb726d48Sopenharmony_ci      y: 20,
38fb726d48Sopenharmony_ci      width: 100,
39fb726d48Sopenharmony_ci      height: 100,
40fb726d48Sopenharmony_ci    },
41fb726d48Sopenharmony_ci    dur: 5,
42fb726d48Sopenharmony_ci  };
43fb726d48Sopenharmony_ci
44fb726d48Sopenharmony_ci  FuncStruct.isSelected = jest.fn(() => true);
45fb726d48Sopenharmony_ci
46fb726d48Sopenharmony_ci  it('FuncStructTest01', function () {
47fb726d48Sopenharmony_ci    expect(FuncStruct.draw(ctx, dataResource)).toBeUndefined();
48fb726d48Sopenharmony_ci  });
49fb726d48Sopenharmony_ci
50fb726d48Sopenharmony_ci  it('FuncStructTest02', function () {
51fb726d48Sopenharmony_ci    expect(FuncStruct.draw(ctx, durData)).toBeUndefined();
52fb726d48Sopenharmony_ci  });
53fb726d48Sopenharmony_ci
54fb726d48Sopenharmony_ci  it('FuncStructTest04', function () {
55fb726d48Sopenharmony_ci    expect(
56fb726d48Sopenharmony_ci      FuncStruct.isSelected({
57fb726d48Sopenharmony_ci        startTs: 10,
58fb726d48Sopenharmony_ci        dur: 10,
59fb726d48Sopenharmony_ci        funName: '',
60fb726d48Sopenharmony_ci      })
61fb726d48Sopenharmony_ci    ).toBeTruthy();
62fb726d48Sopenharmony_ci  });
63fb726d48Sopenharmony_ci
64fb726d48Sopenharmony_ci  it('FuncStructTest05', function () {
65fb726d48Sopenharmony_ci    expect(
66fb726d48Sopenharmony_ci      FuncStruct.isBinder({
67fb726d48Sopenharmony_ci        startTs: 10,
68fb726d48Sopenharmony_ci        dur: 10,
69fb726d48Sopenharmony_ci        funName: null,
70fb726d48Sopenharmony_ci      })
71fb726d48Sopenharmony_ci    ).toBeFalsy();
72fb726d48Sopenharmony_ci  });
73fb726d48Sopenharmony_ci
74fb726d48Sopenharmony_ci
75fb726d48Sopenharmony_ci  it('FuncStructTest08', function () {
76fb726d48Sopenharmony_ci    expect(
77fb726d48Sopenharmony_ci      FuncStruct.isBinderAsync({
78fb726d48Sopenharmony_ci        startTs: 10,
79fb726d48Sopenharmony_ci        dur: 10,
80fb726d48Sopenharmony_ci        funName: null,
81fb726d48Sopenharmony_ci      })
82fb726d48Sopenharmony_ci    ).toBeFalsy();
83fb726d48Sopenharmony_ci  });
84fb726d48Sopenharmony_ci
85fb726d48Sopenharmony_ci  it('FuncStructTest09', function () {
86fb726d48Sopenharmony_ci    expect(
87fb726d48Sopenharmony_ci      FuncStruct.isBinderAsync({
88fb726d48Sopenharmony_ci        startTs: 20,
89fb726d48Sopenharmony_ci        dur: 20,
90fb726d48Sopenharmony_ci        funName: 'funName',
91fb726d48Sopenharmony_ci      })
92fb726d48Sopenharmony_ci    ).toBeFalsy();
93fb726d48Sopenharmony_ci  });
94fb726d48Sopenharmony_ci});
95