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
TearDownTestCase()35 void ScreenGroupInfoTest::TearDownTestCase() {}
36
SetUp()37 void ScreenGroupInfoTest::SetUp() {}
38
TearDown()39 void ScreenGroupInfoTest::TearDown() {}
40
41 namespace {
42 /**
43 * @tc.name: MarshallingUnmarshalling
44 * @tc.desc: Marshalling Unmarshalling test
45 * @tc.type: FUNC
46 */
47 HWTEST_F(ScreenGroupInfoTest, MarshallingUnmarshalling, TestSize.Level1)
48 {
49 std::vector<ScreenId> screenIds;
50 screenIds.push_back(1);
51 screenIds.push_back(2);
52 screenIds.push_back(3);
53 ScreenGroupInfo screenGroupInfoSrc;
54 screenGroupInfoSrc.SetChildren(screenIds);
55
56 Parcel parcel;
57 screenGroupInfoSrc.Marshalling(parcel);
58 ScreenGroupInfo* screenGroupInfoDst = screenGroupInfoSrc.Unmarshalling(parcel);
59
60 std::vector<ScreenId> screenIdsDst = screenGroupInfoDst->GetChildren();
61 ASSERT_EQ(screenIdsDst.size(), 3);
62 ASSERT_EQ(screenIdsDst[0], 1);
63 ASSERT_EQ(screenIdsDst[1], 2);
64 ASSERT_EQ(screenIdsDst[2], 3);
65 delete screenGroupInfoDst;
66 }
67
68 /**
69 * @tc.name: InnerUnmarshalling
70 * @tc.desc: InnerUnmarshalling test
71 * @tc.type: FUNC
72 */
73 HWTEST_F(ScreenGroupInfoTest, InnerUnmarshalling, TestSize.Level1)
74 {
75 ScreenGroupInfo screenGroupInfoSrc;
76 Parcel parcel;
77 parcel.WriteUint32(21); // MAX_SCREEN_GROUP_INFO_SIZE + 1
78 bool result = screenGroupInfoSrc.InnerUnmarshalling(parcel);
79 ASSERT_FALSE(result);
80 }
81
82 /**
83 * @tc.name: Marshalling
84 * @tc.desc: Marshalling test
85 * @tc.type: FUNC
86 */
87 HWTEST_F(ScreenGroupInfoTest, Marshalling, TestSize.Level1)
88 {
89 ScreenGroupInfo screenGroupInfoSrc;
90 Parcel parcel;
91 bool result = screenGroupInfoSrc.InnerUnmarshalling(parcel);
92 ASSERT_FALSE(result);
93 }
94 } // namespace
95 } // namespace Rosen
96 } // namespace OHOS