/** * Copyright © 2019 IBM Corporation * * 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 "action_environment.hpp" #include "device.hpp" #include "i2c_interface.hpp" #include "id_map.hpp" #include "mock_services.hpp" #include "mocked_i2c_interface.hpp" #include "set_device_action.hpp" #include #include #include #include using namespace phosphor::power::regulators; TEST(SetDeviceActionTests, Constructor) { SetDeviceAction action{"regulator1"}; EXPECT_EQ(action.getDeviceID(), "regulator1"); } TEST(SetDeviceActionTests, Execute) { // Create IDMap IDMap idMap{}; // Create MockServices. MockServices services{}; // Create Device regulator1 and add to IDMap std::unique_ptr i2cInterface = i2c::create(1, 0x70, i2c::I2CInterface::InitialState::CLOSED); Device reg1{ "regulator1", true, "/xyz/openbmc_project/inventory/system/chassis/motherboard/reg1", std::move(i2cInterface)}; idMap.addDevice(reg1); // Create Device regulator2 and add to IDMap i2cInterface = i2c::create(1, 0x72, i2c::I2CInterface::InitialState::CLOSED); Device reg2{ "regulator2", true, "/xyz/openbmc_project/inventory/system/chassis/motherboard/reg2", std::move(i2cInterface)}; idMap.addDevice(reg2); // Create ActionEnvironment ActionEnvironment env{idMap, "regulator1", services}; // Create action SetDeviceAction action{"regulator2"}; // Execute action try { EXPECT_EQ(env.getDeviceID(), "regulator1"); EXPECT_EQ(action.execute(env), true); EXPECT_EQ(env.getDeviceID(), "regulator2"); } catch (const std::exception& error) { ADD_FAILURE() << "Should not have caught exception."; } } TEST(SetDeviceActionTests, GetDeviceID) { SetDeviceAction action{"io_expander_0"}; EXPECT_EQ(action.getDeviceID(), "io_expander_0"); } TEST(SetDeviceActionTests, ToString) { SetDeviceAction action{"regulator1"}; EXPECT_EQ(action.toString(), "set_device: regulator1"); }