* Copyright (c) 2021-2023 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "battery_sttest.h"
#include <csignal>
#include <iostream>
#include <fstream>
#include <memory>
#include <mutex>
#include <streambuf>
#include <cstring>
#include <thread>
#include <vector>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/types.h>
#include <dirent.h>
#include "battery_log.h"
#include "battery_srv_client.h"
using namespace testing::ext;
using namespace OHOS;
using namespace OHOS::PowerMgr;
using namespace std;
namespace {
const std::string MOCK_BATTERY_PATH = "/data/service/el0/battery/";
bool g_isMock = false;
}
void BatterySttest::SetUpTestCase(void)
{
g_isMock = TestUtils::IsMock();
GTEST_LOG_(INFO) << " g_isMock: " << g_isMock;
}
void BatterySttest::TearDownTestCase(void)
{
g_isMock = false;
TestUtils::ResetOnline();
}
namespace {
* @tc.name: BatteryST001
* @tc.desc: Test IBatterySrv interface GetCapacity
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST001, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST001 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST001 g_isMock 1.");
auto tempCapacity = BatterySrvClient.GetCapacity();
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/capacity", "44");
auto capacity = BatterySrvClient.GetCapacity();
BATTERY_HILOGI(LABEL_TEST, "BatteryST001::capacity=%{public}d.", capacity);
GTEST_LOG_(INFO) << "BatteryST001 executing, capacity=" << capacity;
EXPECT_TRUE(capacity == 44);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/capacity", std::to_string(tempCapacity));
GTEST_LOG_(INFO) << "BatteryST001 executing, capacity=" << tempCapacity;
} else {
auto capacity = BatterySrvClient.GetCapacity();
BATTERY_HILOGI(LABEL_TEST, "BatteryST001::capacity=%{public}d", capacity);
GTEST_LOG_(INFO) << "BatteryST001 executing, capacity=" << capacity;
EXPECT_TRUE(capacity <= 100 && capacity >= 0);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST001 function end!");
}
* @tc.name: BatteryST002
* @tc.desc: Test IBatterySrv interface GetChargingStatus when chargestate value is none
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST002, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST002 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST002 g_isMock 1.");
auto tempChargeState = BatterySrvClient.GetChargingStatus();
std::string chargeStateArr[] = {"Discharging", "Charging", "Not charging", "Full", "Unknown"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/status", "Discharging");
auto chargeState = BatterySrvClient.GetChargingStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST002::capacity=%{public}d.", chargeState);
GTEST_LOG_(INFO) << "BatteryST002 executing, chargeState=" << static_cast<int32_t>(chargeState);
EXPECT_TRUE(chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_NONE);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/status",
chargeStateArr[static_cast<int32_t>(tempChargeState)]);
GTEST_LOG_(INFO) << "BatteryST002 executing, chargeState=" << static_cast<int32_t>(tempChargeState);
} else {
auto chargeState = BatterySrvClient.GetChargingStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST002::chargeState=%{public}d",
static_cast<int32_t>(chargeState));
GTEST_LOG_(INFO) << "BatteryST002 executing, chargeState="
<< static_cast<int32_t>(chargeState);
EXPECT_TRUE(chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_ENABLE ||
chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_FULL);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST002 function end!");
}
* @tc.name: BatteryST003
* @tc.desc: Test IBatterySrv interface GetChargingStatus when chargestate value is enable
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST003, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST003 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST003 g_isMock 1.");
auto tempChargeState = BatterySrvClient.GetChargingStatus();
std::string chargeStateArr[] = {"Discharging", "Charging", "Not charging", "Full", "Unknown"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/status", "Charging");
auto chargeState = BatterySrvClient.GetChargingStatus();
GTEST_LOG_(INFO) << "BatteryST003 executing, chargeState=" << static_cast<int32_t>(chargeState);
EXPECT_TRUE(chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_ENABLE);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/status",
chargeStateArr[static_cast<int32_t>(tempChargeState)]);
GTEST_LOG_(INFO) << "BatteryST003 executing, chargeState=" << static_cast<int32_t>(tempChargeState);
} else {
auto chargeState = BatterySrvClient.GetChargingStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST003::chargeState=%{public}d",
static_cast<int32_t>(chargeState));
GTEST_LOG_(INFO) << "BatteryST003 executing, chargeState="
<< static_cast<int32_t>(chargeState);
EXPECT_TRUE(chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_ENABLE ||
chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_FULL);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST003 function end!");
}
* @tc.name: BatteryST004
* @tc.desc: Test IBatterySrv interface GetChargingStatus when chargestate value is full
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST004, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST004 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST004 g_isMock 1.");
auto tempChargeState = BatterySrvClient.GetChargingStatus();
std::string chargeStateArr[] = {"Discharging", "Charging", "Not charging", "Full", "Unknown"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/status", "Full");
auto chargeState = BatterySrvClient.GetChargingStatus();
GTEST_LOG_(INFO) << "BatteryST004 executing, chargeState=" << static_cast<int32_t>(chargeState);
EXPECT_TRUE(chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_FULL);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/status",
chargeStateArr[static_cast<int32_t>(tempChargeState)]);
GTEST_LOG_(INFO) << "BatteryST004 executing, chargeState=" << static_cast<int32_t>(tempChargeState);
} else {
auto chargeState = BatterySrvClient.GetChargingStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST004::chargeState=%{public}d",
static_cast<int32_t>(chargeState));
GTEST_LOG_(INFO) << "BatteryST004 executing, chargeState="
<< static_cast<int32_t>(chargeState);
EXPECT_TRUE(chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_ENABLE ||
chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_FULL);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST004 function end!");
}
* @tc.name: BatteryST005
* @tc.desc: Test IBatterySrv interface GetChargingStatus when chargestate value is disable
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST005, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST005 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST005 g_isMock 1.");
auto tempChargeState = BatterySrvClient.GetChargingStatus();
std::string chargeStateArr[] = {"Discharging", "Charging", "Not charging", "Full", "Unknown"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/status", "Not charging");
auto chargeState = BatterySrvClient.GetChargingStatus();
GTEST_LOG_(INFO) << "BatteryST005 executing, chargeState=" << static_cast<int32_t>(chargeState);
EXPECT_TRUE(chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_DISABLE);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/status",
chargeStateArr[static_cast<int32_t>(tempChargeState)]);
GTEST_LOG_(INFO) << "BatteryST005 executing, chargeState=" << static_cast<int32_t>(tempChargeState);
} else {
auto chargeState = BatterySrvClient.GetChargingStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST005::chargeState=%{public}d",
static_cast<int32_t>(chargeState));
GTEST_LOG_(INFO) << "BatteryST005 executing, chargeState="
<< static_cast<int32_t>(chargeState);
EXPECT_TRUE(chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_ENABLE ||
chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_FULL);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST005 function end!");
}
* @tc.name: BatteryST006
* @tc.desc: Test IBatterySrv interface GetChargingStatus when chargestate value is butt
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST006, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST006 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST006 g_isMock 1.");
auto tempChargeState = BatterySrvClient.GetChargingStatus();
std::string chargeStateArr[] = {"Discharging", "Charging", "Not charging", "Full", "Unknown"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/status", "Unknown");
auto chargeState = BatterySrvClient.GetChargingStatus();
GTEST_LOG_(INFO) << "BatteryST006 executing, chargeState=" << static_cast<int32_t>(chargeState);
EXPECT_TRUE(chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_BUTT);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/status",
chargeStateArr[static_cast<int32_t>(tempChargeState)]);
GTEST_LOG_(INFO) << "BatteryST006 executing, chargeState=" << static_cast<int32_t>(tempChargeState);
} else {
auto chargeState = BatterySrvClient.GetChargingStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST006::chargeState=%{public}d",
static_cast<int32_t>(chargeState));
GTEST_LOG_(INFO) << "BatteryST006 executing, chargeState="
<< static_cast<int32_t>(chargeState);
EXPECT_TRUE(chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_ENABLE ||
chargeState == OHOS::PowerMgr::BatteryChargeState::CHARGE_STATE_FULL);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST006 function end!");
}
* @tc.name: BatteryST007
* @tc.desc: Test IBatterySrv interface GetHealthStatus when healthstatus value is HEALTH_STATE_GOOD
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST007, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST007 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST007 g_isMock 1.");
auto tempHealthState = BatterySrvClient.GetHealthStatus();
std::string healthStateArr[] = {"Unknown", "Good", "Hot", "Over voltage", "Cold", "Dead"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health", "Good");
auto healthState = BatterySrvClient.GetHealthStatus();
GTEST_LOG_(INFO) << "BatteryST007 executing, healthState=" << static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_GOOD);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health",
healthStateArr[static_cast<int32_t>(tempHealthState)]);
GTEST_LOG_(INFO) << "BatteryST007 executing, healthState=" << static_cast<int32_t>(tempHealthState);
} else {
auto healthState = BatterySrvClient.GetHealthStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST007::healthState=%{public}d",
static_cast<int32_t>(healthState));
GTEST_LOG_(INFO) << "BatteryST007 executing, healthState="
<< static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_GOOD);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST007 function end!");
}
* @tc.name: BatteryST008
* @tc.desc: Test IBatterySrv interface GetHealthStatus when healthstatus value is HEALTH_STATE_COLD
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST008, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST008 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST008 g_isMock 1.");
auto tempHealthState = BatterySrvClient.GetHealthStatus();
std::string healthStateArr[] = {"Unknown", "Good", "Hot", "Over voltage", "Cold", "Dead"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health", "Cold");
auto healthState = BatterySrvClient.GetHealthStatus();
GTEST_LOG_(INFO) << "BatteryST008 executing, healthState=" << static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_COLD);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health",
healthStateArr[static_cast<int32_t>(tempHealthState)]);
GTEST_LOG_(INFO) << "BatteryST008 executing, healthState=" << static_cast<int32_t>(tempHealthState);
} else {
auto healthState = BatterySrvClient.GetHealthStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST008::healthState=%{public}d",
static_cast<int32_t>(healthState));
GTEST_LOG_(INFO) << "BatteryST008 executing, healthState="
<< static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_GOOD);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST008 function end!");
}
* @tc.name: BatteryST009
* @tc.desc: Test IBatterySrv interface GetHealthStatus when healthstatus value is HEALTH_STATE_OVERHEAT
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST009, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST009 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST009 g_isMock 1.");
auto tempHealthState = BatterySrvClient.GetHealthStatus();
std::string healthStateArr[] = {"Unknown", "Good", "Hot", "Over voltage", "Cold", "Dead"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health", "Hot");
auto healthState = BatterySrvClient.GetHealthStatus();
GTEST_LOG_(INFO) << "BatteryST009 executing, healthState=" << static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_OVERHEAT);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health",
healthStateArr[static_cast<int32_t>(tempHealthState)]);
GTEST_LOG_(INFO) << "BatteryST009 executing, healthState=" << static_cast<int32_t>(tempHealthState);
} else {
auto healthState = BatterySrvClient.GetHealthStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST009::healthState=%{public}d",
static_cast<int32_t>(healthState));
GTEST_LOG_(INFO) << "BatteryST009 executing, healthState="
<< static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_GOOD);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST009 function end!");
}
* @tc.name: BatteryST010
* @tc.desc: Test IBatterySrv interface GetHealthStatus when healthstatus value is HEALTH_STATE_OVERVOLTAGE
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST010, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST010 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST010 g_isMock 1.");
auto tempHealthState = BatterySrvClient.GetHealthStatus();
std::string healthStateArr[] = {"Unknown", "Good", "Hot", "Over voltage", "Cold", "Dead"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health", "Over voltage");
auto healthState = BatterySrvClient.GetHealthStatus();
GTEST_LOG_(INFO) << "BatteryST010 executing, healthState=" << static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_OVERVOLTAGE);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health",
healthStateArr[static_cast<int32_t>(tempHealthState)]);
GTEST_LOG_(INFO) << "BatteryST010 executing, healthState=" << static_cast<int32_t>(tempHealthState);
} else {
auto healthState = BatterySrvClient.GetHealthStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST010::healthState=%{public}d",
static_cast<int32_t>(healthState));
GTEST_LOG_(INFO) << "BatteryST010 executing, healthState="
<< static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_GOOD);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST010 function end!");
}
* @tc.name: BatteryST011
* @tc.desc: Test IBatterySrv interface GetHealthStatus when healthstatus value is HEALTH_STATE_DEAD
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST011, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST011 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST011 g_isMock 1.");
auto tempHealthState = BatterySrvClient.GetHealthStatus();
std::string healthStateArr[] = {"Unknown", "Good", "Hot", "Over voltage", "Cold", "Dead"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health", "Dead");
auto healthState = BatterySrvClient.GetHealthStatus();
GTEST_LOG_(INFO) << "BatteryST011 executing, healthState=" << static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_DEAD);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health",
healthStateArr[static_cast<int32_t>(tempHealthState)]);
GTEST_LOG_(INFO) << "BatteryST011 executing, healthState=" << static_cast<int32_t>(tempHealthState);
} else {
auto healthState = BatterySrvClient.GetHealthStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST011::healthState=%{public}d",
static_cast<int32_t>(healthState));
GTEST_LOG_(INFO) << "BatteryST011 executing, healthState="
<< static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_GOOD);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST011 function end!");
}
* @tc.name: BatteryST012
* @tc.desc: Test IBatterySrv interface GetHealthStatus when healthstatus value is HEALTH_STATE_UNKNOWN
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST012, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST012 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST012 g_isMock 1.");
auto tempHealthState = BatterySrvClient.GetHealthStatus();
std::string healthStateArr[] = {"Unknown", "Good", "Hot", "Over voltage", "Cold", "Dead"};
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health", "Unknown");
auto healthState = BatterySrvClient.GetHealthStatus();
GTEST_LOG_(INFO) << "BatteryST012 executing, healthState=" << static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_UNKNOWN);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/health",
healthStateArr[static_cast<int32_t>(tempHealthState)]);
GTEST_LOG_(INFO) << "BatteryST012 executing, healthState=" << static_cast<int32_t>(tempHealthState);
} else {
auto healthState = BatterySrvClient.GetHealthStatus();
BATTERY_HILOGI(LABEL_TEST, "BatteryST012::healthState=%{public}d",
static_cast<int32_t>(healthState));
GTEST_LOG_(INFO) << "BatteryST012 executing, healthState="
<< static_cast<int32_t>(healthState);
EXPECT_TRUE(healthState == OHOS::PowerMgr::BatteryHealthState::HEALTH_STATE_GOOD);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST012 function end!");
}
* @tc.name: BatteryST013
* @tc.desc: Test IBatterySrv interface GetPresent when present is true
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST013, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST013 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST012 g_isMock 1.");
auto tempPresent = BatterySrvClient.GetPresent();
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/present", "1");
auto present = BatterySrvClient.GetPresent();
GTEST_LOG_(INFO) << "BatteryST013 executing, present=" << present;
EXPECT_TRUE(present);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/present", std::to_string(tempPresent));
GTEST_LOG_(INFO) << "BatteryST013 executing, tempPresent=" << static_cast<int32_t>(tempPresent);
} else {
auto present = BatterySrvClient.GetPresent();
BATTERY_HILOGI(LABEL_TEST, "BatteryST013::present=%{public}d", present);
GTEST_LOG_(INFO) << "BatteryST013 executing, present=" << present;
EXPECT_TRUE(present);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST013 function end!");
}
* @tc.name: BatteryST014
* @tc.desc: Test IBatterySrv interface GetPresent when present is false
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST014, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST014 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST014 g_isMock 1.");
auto tempPresent = BatterySrvClient.GetPresent();
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/present", "0");
auto present = BatterySrvClient.GetPresent();
GTEST_LOG_(INFO) << "BatteryST014 executing, present=" << present;
EXPECT_FALSE(present);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/present", std::to_string(tempPresent));
GTEST_LOG_(INFO) << "BatteryST014 executing, tempPresent=" << static_cast<int32_t>(tempPresent);
} else {
auto present = BatterySrvClient.GetPresent();
BATTERY_HILOGI(LABEL_TEST, "BatteryST014::present=%{public}d", present);
GTEST_LOG_(INFO) << "BatteryST014 executing, present=" << present;
EXPECT_TRUE(present);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST014 function end!");
}
* @tc.name: BatteryST015
* @tc.desc: Test IBatterySrv interface GetVoltage
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST015, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST015 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST015 g_isMock 1.");
auto tempVoltagenow = BatterySrvClient.GetVoltage();
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/voltage_now", "4654321");
auto voltage = BatterySrvClient.GetVoltage();
GTEST_LOG_(INFO) << "BatteryST015 executing, voltage=" << voltage;
EXPECT_TRUE(voltage == 4654321);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/voltage_now", std::to_string(tempVoltagenow));
GTEST_LOG_(INFO) << "BatteryST015 executing, tempPresent=" << static_cast<int32_t>(tempVoltagenow);
} else {
auto voltage = BatterySrvClient.GetVoltage();
BATTERY_HILOGI(LABEL_TEST, "BatteryST015::voltage=%{public}d", voltage);
GTEST_LOG_(INFO) << "BatteryST015 executing, voltage=" << voltage;
EXPECT_TRUE(voltage >= 0);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST015 function end!");
}
* @tc.name: BatteryST016
* @tc.desc: Test IBatterySrv interface GetTemperature
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST016, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST016 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST016 g_isMock 1.");
auto tempTempPresent = BatterySrvClient.GetBatteryTemperature();
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/temp", "234");
auto temperature = BatterySrvClient.GetBatteryTemperature();
GTEST_LOG_(INFO) << "BatteryST016 executing, temperature=" << temperature;
EXPECT_TRUE(temperature == 234);
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/battery/temp", std::to_string(tempTempPresent));
GTEST_LOG_(INFO) << "BatteryST016 executing, temperature=" << static_cast<int32_t>(tempTempPresent);
} else {
auto temperature = BatterySrvClient.GetBatteryTemperature();
BATTERY_HILOGI(LABEL_TEST, "BatteryST016::temperature=%{public}d", temperature);
GTEST_LOG_(INFO) << "BatteryST016 executing, temperature=" << temperature;
EXPECT_TRUE(temperature >= 0 && temperature <= 600);
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST016 function end!");
}
* @tc.name: BatteryST017
* @tc.desc: Test IBatterySrv interface GetTechnology
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST017, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST017 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST017 g_isMock 1.");
std::string tempTechnology = BatterySrvClient.GetTechnology();
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/ohos-fgu/technology", "H2");
auto technology = BatterySrvClient.GetTechnology();
GTEST_LOG_(INFO) << "BatteryST017 executing, technology=" << technology;
EXPECT_TRUE(technology == "H2");
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/ohos-fgu/technology", tempTechnology);
GTEST_LOG_(INFO) << "BatteryST017 executing, technology=" << tempTechnology;
} else {
auto technology = BatterySrvClient.GetTechnology();
BATTERY_HILOGI(LABEL_TEST, "BatteryST017::technology=%{public}s", technology.c_str());
GTEST_LOG_(INFO) << "BatteryST017 executing, technology=" << technology;
#ifdef PC_TEST
EXPECT_TRUE(technology == "Li-ion");
#else
EXPECT_TRUE(technology == "Li-poly");
#endif
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST017 function end!");
}
* @tc.name: BatteryST018
* @tc.desc: Test IBatterySrv interface GetPluggedType when pluggedType value is PLUGGED_TYPE_AC
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST018, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST018 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST018 g_isMock 1.");
TestUtils::ResetOnline();
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/ohos_charger/online", "1");
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/ohos_charger/type", "Mains");
auto pluggedType = BatterySrvClient.GetPluggedType();
GTEST_LOG_(INFO) << "BatteryST018 executing, pluggedType=" << static_cast<int32_t>(pluggedType);
EXPECT_TRUE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_AC);
} else {
auto pluggedType = BatterySrvClient.GetPluggedType();
BATTERY_HILOGI(LABEL_TEST, "BatteryST018::pluggedType=%{public}d",
static_cast<int32_t>(pluggedType));
GTEST_LOG_(INFO) << "BatteryST018 executing, pluggedType="
<< static_cast<int32_t>(pluggedType);
#ifdef PC_TEST
EXPECT_TRUE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_AC);
#else
EXPECT_FALSE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_BUTT);
#endif
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST018 function end!");
}
* @tc.name: BatteryST019
* @tc.desc: Test IBatterySrv interface GetPluggedType when pluggedType value is PLUGGED_TYPE_USB
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST019, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST019 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST019 g_isMock 1.");
TestUtils::ResetOnline();
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/ohos_charger/online", "1");
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/ohos_charger/type", "USB");
auto pluggedType = BatterySrvClient.GetPluggedType();
GTEST_LOG_(INFO) << "BatteryST019 executing, pluggedType=" << static_cast<int32_t>(pluggedType);
EXPECT_TRUE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_USB);
} else {
auto pluggedType = BatterySrvClient.GetPluggedType();
BATTERY_HILOGI(LABEL_TEST, "BatteryST019::pluggedType=%{public}d",
static_cast<int32_t>(pluggedType));
GTEST_LOG_(INFO) << "BatteryST019 executing, pluggedType="
<< static_cast<int32_t>(pluggedType);
#ifdef PC_TEST
EXPECT_TRUE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_AC);
#else
EXPECT_FALSE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_BUTT);
#endif
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST019 function end!");
}
* @tc.name: BatteryST020
* @tc.desc: Test IBatterySrv interface GetPluggedType when pluggedType value is PLUGGED_TYPE_WIRELESS
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST020, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST020 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST020 g_isMock 1.");
TestUtils::ResetOnline();
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/ohos_charger/online", "1");
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/ohos_charger/type", "Wireless");
auto pluggedType = BatterySrvClient.GetPluggedType();
GTEST_LOG_(INFO) << "BatteryST020 executing, pluggedType=" << static_cast<int32_t>(pluggedType);
EXPECT_TRUE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_WIRELESS);
} else {
auto pluggedType = BatterySrvClient.GetPluggedType();
BATTERY_HILOGI(LABEL_TEST, "BatteryST020::pluggedType=%{public}d",
static_cast<int32_t>(pluggedType));
GTEST_LOG_(INFO) << "BatteryST020 executing, pluggedType="
<< static_cast<int32_t>(pluggedType);
#ifdef PC_TEST
EXPECT_TRUE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_AC);
#else
EXPECT_FALSE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_BUTT);
#endif
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST020 function end!");
}
* @tc.name: BatteryST021
* @tc.desc: Test IBatterySrv interface GetPluggedType when pluggedType value is PLUGGED_TYPE_BUTT
* ParsePluggedType return HDF_ERR_NOT_SUPPORT, g_service->GetPluggedType FAIL
* @tc.type: FUNC
* @tc.require: issueI6KRS8
*/
HWTEST_F (BatterySttest, BatteryST021, TestSize.Level1)
{
BATTERY_HILOGI(LABEL_TEST, "BatteryST021 function start!");
auto& BatterySrvClient = BatterySrvClient::GetInstance();
if (g_isMock) {
BATTERY_HILOGI(LABEL_TEST, "BatteryST021 g_isMock 1.");
TestUtils::ResetOnline();
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/ohos_charger/online", "1");
TestUtils::WriteMock(MOCK_BATTERY_PATH + "/ohos_charger/type", "Unknown");
auto pluggedType = BatterySrvClient.GetPluggedType();
GTEST_LOG_(INFO) << "BatteryST021 executing, pluggedType=" << static_cast<int32_t>(pluggedType);
EXPECT_TRUE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_NONE);
} else {
auto pluggedType = BatterySrvClient.GetPluggedType();
BATTERY_HILOGI(LABEL_TEST, "BatteryST021::pluggedType=%{public}d",
static_cast<int32_t>(pluggedType));
GTEST_LOG_(INFO) << "BatteryST021 executing, pluggedType="
<< static_cast<int32_t>(pluggedType);
#ifdef PC_TEST
EXPECT_TRUE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_AC);
#else
EXPECT_FALSE(pluggedType == OHOS::PowerMgr::BatteryPluggedType::PLUGGED_TYPE_BUTT);
#endif
}
BATTERY_HILOGI(LABEL_TEST, "BatteryST021 function end!");
}
}