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_info.h"
19
20using namespace testing;
21using namespace testing::ext;
22
23namespace OHOS {
24namespace Rosen {
25class ScreenInfoTest : public testing::Test {
26public:
27    static void SetUpTestCase();
28    static void TearDownTestCase();
29    virtual void SetUp() override;
30    virtual void TearDown() override;
31};
32
33void ScreenInfoTest::SetUpTestCase()
34{
35}
36
37void ScreenInfoTest::TearDownTestCase()
38{
39}
40
41void ScreenInfoTest::SetUp()
42{
43}
44
45void ScreenInfoTest::TearDown()
46{
47}
48
49namespace {
50/**
51 * @tc.name: MarshallingUnmarshalling
52 * @tc.desc: Marshalling Unmarshalling test
53 * @tc.type: FUNC
54 */
55HWTEST_F(ScreenInfoTest, MarshallingUnmarshalling, Function | SmallTest | Level2)
56{
57    ScreenInfo screenInfoSrc;
58    screenInfoSrc.SetScreenId(1);
59
60    Parcel parcel;
61    screenInfoSrc.Marshalling(parcel);
62    ScreenInfo* screenInfoDst = screenInfoSrc.Unmarshalling(parcel);
63
64    ASSERT_EQ(screenInfoDst->GetScreenId(), 1);
65    delete screenInfoDst;
66}
67
68/**
69 * @tc.name: Marshalling
70 * @tc.desc: Marshalling  test
71 * @tc.type: FUNC
72 */
73HWTEST_F(ScreenInfoTest, Marshalling, Function | SmallTest | Level2)
74{
75    ScreenInfo screenInfoSrc;
76    screenInfoSrc.SetScreenId(1);
77
78    Parcel parcel;
79    bool result = screenInfoSrc.Marshalling(parcel);
80    ASSERT_TRUE(result);
81}
82
83/**
84 * @tc.name: InnerUnmarshalling
85 * @tc.desc: InnerUnmarshalling  test
86 * @tc.type: FUNC
87 */
88HWTEST_F(ScreenInfoTest, InnerUnmarshalling, Function | SmallTest | Level2)
89{
90    ScreenInfo screenInfoSrc;
91    Parcel parcel;
92    parcel.WriteUint32(21);    // MAX_SUPPORTED_SCREEN_MODES_SIZE + 1
93    bool result = screenInfoSrc.InnerUnmarshalling(parcel);
94    ASSERT_FALSE(result);
95}
96}
97} // namespace Rosen
98} // namespace OHOS