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
16 #include <gtest/gtest.h>
17
18 #include "screen_group_info.h"
19
20 using namespace testing;
21 using namespace testing::ext;
22
23 namespace OHOS {
24 namespace Rosen {
25 class ScreenGroupInfoTest : public testing::Test {
26 public:
27 static void SetUpTestCase();
28 static void TearDownTestCase();
29 virtual void SetUp() override;
30 virtual void TearDown() override;
31 };
32
SetUpTestCase()33 void ScreenGroupInfoTest::SetUpTestCase()
34 {
35 }
36
TearDownTestCase()37 void ScreenGroupInfoTest::TearDownTestCase()
38 {
39 }
40
SetUp()41 void ScreenGroupInfoTest::SetUp()
42 {
43 }
44
TearDown()45 void ScreenGroupInfoTest::TearDown()
46 {
47 }
48
49 namespace {
50 /**
51 * @tc.name: MarshallingUnmarshalling
52 * @tc.desc: Marshalling Unmarshalling test
53 * @tc.type: FUNC
54 */
55 HWTEST_F(ScreenGroupInfoTest, MarshallingUnmarshalling, Function | SmallTest | Level1)
56 {
57 std::vector<ScreenId> screenIds;
58 screenIds.push_back(1);
59 screenIds.push_back(2);
60 screenIds.push_back(3);
61 ScreenGroupInfo screenGroupInfoSrc;
62 screenGroupInfoSrc.SetChildren(screenIds);
63
64 Parcel parcel;
65 screenGroupInfoSrc.Marshalling(parcel);
66 ScreenGroupInfo* screenGroupInfoDst = screenGroupInfoSrc.Unmarshalling(parcel);
67
68 std::vector<ScreenId> screenIdsDst = screenGroupInfoDst->GetChildren();
69 ASSERT_EQ(screenIdsDst.size(), 3);
70 ASSERT_EQ(screenIdsDst[0], 1);
71 ASSERT_EQ(screenIdsDst[1], 2);
72 ASSERT_EQ(screenIdsDst[2], 3);
73 delete screenGroupInfoDst;
74 }
75
76 /**
77 * @tc.name: InnerUnmarshalling
78 * @tc.desc: InnerUnmarshalling test
79 * @tc.type: FUNC
80 */
81 HWTEST_F(ScreenGroupInfoTest, InnerUnmarshalling, Function | SmallTest | Level1)
82 {
83 ScreenGroupInfo screenGroupInfoSrc;
84 Parcel parcel;
85 parcel.WriteUint32(21); // MAX_SCREEN_GROUP_INFO_SIZE + 1
86 bool result = screenGroupInfoSrc.InnerUnmarshalling(parcel);
87 ASSERT_FALSE(result);
88 }
89
90 /**
91 * @tc.name: Marshalling
92 * @tc.desc: Marshalling test
93 * @tc.type: FUNC
94 */
95 HWTEST_F(ScreenGroupInfoTest, Marshalling, Function | SmallTest | Level1)
96 {
97 ScreenGroupInfo screenGroupInfoSrc;
98 Parcel parcel;
99 bool result = screenGroupInfoSrc.InnerUnmarshalling(parcel);
100 ASSERT_FALSE(result);
101 }
102 }
103 } // namespace Rosen
104 } // namespace OHOS