| // Copyright 2022 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <memory> |
| |
| #include <gmock/gmock.h> |
| #include <gtest/gtest.h> |
| |
| #include "libec/charge_control_set_command.h" |
| |
| namespace ec { |
| namespace { |
| |
| using ::testing::Return; |
| |
| TEST(ChargeControlSetCommand, ChargeControlSetCommandNormal) { |
| // Default constructor sets CHARGE_CONTROL_NORMAL |
| ChargeControlSetCommand cmd; |
| EXPECT_EQ(cmd.Command(), EC_CMD_CHARGE_CONTROL); |
| EXPECT_GE(cmd.Version(), 2); |
| EXPECT_EQ(cmd.Req()->cmd, EC_CHARGE_CONTROL_CMD_SET); |
| EXPECT_EQ(cmd.Req()->mode, CHARGE_CONTROL_NORMAL); |
| } |
| |
| TEST(ChargeControlSetCommand, ChargeControlSetCommandSustain) { |
| ChargeControlSetCommand cmd(CHARGE_CONTROL_NORMAL, 70, 80); |
| EXPECT_EQ(cmd.Command(), EC_CMD_CHARGE_CONTROL); |
| EXPECT_GE(cmd.Version(), 2); |
| EXPECT_EQ(cmd.Req()->cmd, EC_CHARGE_CONTROL_CMD_SET); |
| EXPECT_EQ(cmd.Req()->mode, CHARGE_CONTROL_NORMAL); |
| EXPECT_EQ(cmd.Req()->sustain_soc.lower, 70); |
| EXPECT_EQ(cmd.Req()->sustain_soc.upper, 80); |
| } |
| |
| TEST(ChargeControlSetCommand, ChargeControlSetCommandIdle) { |
| ChargeControlSetCommand cmd(CHARGE_CONTROL_IDLE); |
| EXPECT_EQ(cmd.Command(), EC_CMD_CHARGE_CONTROL); |
| EXPECT_GE(cmd.Version(), 2); |
| EXPECT_EQ(cmd.Req()->cmd, EC_CHARGE_CONTROL_CMD_SET); |
| EXPECT_EQ(cmd.Req()->mode, CHARGE_CONTROL_IDLE); |
| } |
| |
| TEST(ChargeControlSetCommand, ChargeControlSetCommandDischarge) { |
| ChargeControlSetCommand cmd(CHARGE_CONTROL_DISCHARGE); |
| EXPECT_EQ(cmd.Command(), EC_CMD_CHARGE_CONTROL); |
| EXPECT_GE(cmd.Version(), 2); |
| EXPECT_EQ(cmd.Req()->cmd, EC_CHARGE_CONTROL_CMD_SET); |
| EXPECT_EQ(cmd.Req()->mode, CHARGE_CONTROL_DISCHARGE); |
| } |
| |
| } // namespace |
| } // namespace ec |