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#define private public
18#include "brightness_impl.h"
19#include "SharedData.h"
20
21namespace {
22    TEST(BrightnessImplTest, SetAndGetValueImplTest)
23    {
24        uint8_t minVal = 0;
25        uint8_t curVal = 100;
26        uint8_t maxVal = 100;
27        SharedData<uint8_t>(SharedDataType::BRIGHTNESS_VALUE, curVal, minVal, maxVal);
28        // set value failed
29        uint8_t setVal = 200;
30        int32_t ret = OHOS::ACELite::BrightnessImpl::SetValueImpl(setVal);
31        EXPECT_EQ(ret, OHOS::ACELite::EC_API_INVALID_PARAM);
32        // set value successed
33        setVal = 80;
34        ret = OHOS::ACELite::BrightnessImpl::SetValueImpl(setVal);
35        EXPECT_EQ(ret, 0);
36        uint8_t val;
37        OHOS::ACELite::BrightnessImpl::GetValueImpl(val);
38        EXPECT_EQ(val, setVal);
39    }
40
41    TEST(BrightnessImplTest, SetAndGetModeImplTest)
42    {
43        SharedData<uint8_t>(SharedDataType::BRIGHTNESS_MODE, (uint8_t)BrightnessMode::MANUAL,
44            (uint8_t)BrightnessMode::MANUAL, (uint8_t)BrightnessMode::AUTO);
45        // set value failed
46        uint8_t setVal = 200;
47        int32_t ret = OHOS::ACELite::BrightnessImpl::SetModeImpl(setVal);
48        EXPECT_EQ(ret, OHOS::ACELite::EC_API_INVALID_PARAM);
49        // set value successed
50        setVal = 1;
51        ret = OHOS::ACELite::BrightnessImpl::SetModeImpl(setVal);
52        EXPECT_EQ(ret, 0);
53        uint8_t val;
54        OHOS::ACELite::BrightnessImpl::GetModeImpl(val);
55        EXPECT_EQ(val, setVal);
56    }
57
58    TEST(BrightnessImplTest, SetKeepScreenOnImplTest)
59    {
60        SharedData<bool>(SharedDataType::KEEP_SCREEN_ON, true);
61        OHOS::ACELite::BrightnessImpl brightness;
62        brightness.SetKeepScreenOnImpl(false);
63        EXPECT_FALSE(SharedData<bool>::GetData(SharedDataType::KEEP_SCREEN_ON));
64    }
65
66    TEST(BrightnessImplTest, SetAlwaysOnModeTest)
67    {
68        bool mode = 0;
69        OHOS::ACELite::BrightnessImpl::SetAlwaysOnMode(mode);
70        EXPECT_EQ(mode, 0);
71    }
72
73    TEST(BrightnessImplTest, GetAndSetSysModeTest)
74    {
75        uint8_t mode = 0;
76        OHOS::ACELite::BrightnessImpl::SetSysMode(0);
77        int32_t ret = OHOS::ACELite::BrightnessImpl::GetSysMode(mode);
78        EXPECT_EQ(ret, 0);
79        EXPECT_EQ(mode, 0);
80    }
81
82    TEST(BrightnessImplTest, SetAndGetSysAlwaysOnStateImplTest)
83    {
84        OHOS::ACELite::BrightnessImpl brightness;
85        uint8_t alwaysOnState = 1;
86        brightness.SetSysAlwaysOnState(alwaysOnState);
87        uint8_t ret = brightness.GetSysAlwaysOnState();
88        EXPECT_EQ(ret, 0);
89    }
90
91    TEST(BrightnessImplTest, GetCurBrightLevelTest)
92    {
93        uint8_t ret = OHOS::ACELite::BrightnessImpl::GetCurBrightLevel();
94        EXPECT_EQ(ret, 0);
95    }
96}