1 /*
2  * Copyright (C) 2024 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 
16 #include <gtest/gtest.h>
17 #include "accessibility_ability_info_parcel.h"
18 
19 using namespace testing;
20 using namespace testing::ext;
21 
22 namespace OHOS {
23 namespace Accessibility {
24 class AccessibilityAbilityInfoParcelTest : public ::testing::Test {
25 public:
AccessibilityAbilityInfoParcelTest()26     AccessibilityAbilityInfoParcelTest()
27     {}
~AccessibilityAbilityInfoParcelTest()28     ~AccessibilityAbilityInfoParcelTest()
29     {}
SetUpTestCase()30     static void SetUpTestCase()
31     {
32         GTEST_LOG_(INFO) << "AccessibilityAbilityInfoParcelTest Start";
33     }
TearDownTestCase()34     static void TearDownTestCase()
35     {
36         GTEST_LOG_(INFO) << "AccessibilityAbilityInfoParcelTest End";
37     }
38 
SetUp()39     void SetUp()
40     {
41         GTEST_LOG_(INFO) << "AccessibilityAbilityInfoParcelTest SetUp() Start";
42         AccessibilityAbilityInitParams params;
43         params.bundleName = "bundleName";
44         params.moduleName = "moduleName";
45         params.name = "name";
46         params.description = "description";
47         params.rationale = "rationale";
48         params.settingsAbility = "settingsAbility";
49         params.staticCapabilities = 1;
50         params.abilityTypes = ACCESSIBILITY_ABILITY_TYPE_SPOKEN;
51         params.isImportant = true;
52         params.needHide = false;
53         abilityInfo_ = std::make_shared<AccessibilityAbilityInfo>(params);
54         abilityInfoParcel_ = std::make_shared<AccessibilityAbilityInfoParcel>(*abilityInfo_);
55         GTEST_LOG_(INFO) << "AccessibilityAbilityInfoParcelTest SetUp() End";
56     };
57 
TearDown()58     void TearDown()
59     {
60         GTEST_LOG_(INFO) << "AccessibilityAbilityInfoParcelTest TearDown()";
61         abilityInfo_ = nullptr;
62         abilityInfoParcel_ = nullptr;
63     }
64 
65     std::shared_ptr<AccessibilityAbilityInfo> abilityInfo_ = nullptr;
66     std::shared_ptr<AccessibilityAbilityInfoParcel> abilityInfoParcel_ = nullptr;
67 };
68 
69 /**
70  * @tc.number: Marshalling_001
71  * @tc.name: Marshalling
72  * @tc.desc: Test function Marshalling
73  */
74 HWTEST_F(AccessibilityAbilityInfoParcelTest, Marshalling_001, TestSize.Level1)
75 {
76     GTEST_LOG_(INFO) << "Marshalling_001 start";
77     if (!abilityInfoParcel_) {
78         GTEST_LOG_(INFO) << "abilityInfoParcel_ is null";
79         return;
80     }
81 
82     Parcel parcel;
83     bool ret = abilityInfoParcel_->Marshalling(parcel);
84     EXPECT_EQ(ret, true);
85     GTEST_LOG_(INFO) << "Marshalling_001 end";
86 }
87 
88 /**
89  * @tc.number: Unmarshalling_001
90  * @tc.name: Unmarshalling
91  * @tc.desc: Test function Unmarshalling
92  */
93 HWTEST_F(AccessibilityAbilityInfoParcelTest, Unmarshalling_001, TestSize.Level1)
94 {
95     GTEST_LOG_(INFO) << "Unmarshalling_001 start";
96     if (!abilityInfoParcel_) {
97         GTEST_LOG_(INFO) << "abilityInfoParcel_ is null";
98         return;
99     }
100 
101     Parcel parcel;
102     sptr<AccessibilityAbilityInfoParcel> infoParcel = abilityInfoParcel_->Unmarshalling(parcel);
103     EXPECT_EQ(true, infoParcel == nullptr);
104 }
105 } // namespace Accessibility
106 } // namespace OHOS