1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #include "async_resp.hpp" 4 #include "http_response.hpp" 5 #include "power_subsystem.hpp" 6 7 #include <nlohmann/json.hpp> 8 9 #include <memory> 10 #include <optional> 11 #include <string> 12 13 #include <gtest/gtest.h> 14 15 namespace redfish 16 { 17 namespace 18 { 19 20 constexpr const char* chassisId = "ChassisId"; 21 constexpr const char* validChassisPath = "ChassisPath"; 22 23 void assertPowerSubsystemCollectionGet(crow::Response& res) 24 { 25 nlohmann::json& json = res.jsonValue; 26 EXPECT_EQ(json["@odata.type"], "#PowerSubsystem.v1_1_0.PowerSubsystem"); 27 EXPECT_EQ(json["Name"], "Power Subsystem"); 28 EXPECT_EQ(json["Id"], "PowerSubsystem"); 29 EXPECT_EQ(json["@odata.id"], 30 "/redfish/v1/Chassis/ChassisId/PowerSubsystem"); 31 EXPECT_EQ(json["Status"]["State"], "Enabled"); 32 EXPECT_EQ(json["Status"]["Health"], "OK"); 33 } 34 35 TEST(PowerSubsystemCollectionTest, 36 PowerSubsystemCollectionStaticAttributesAreExpected) 37 { 38 auto shareAsyncResp = std::make_shared<bmcweb::AsyncResp>(); 39 shareAsyncResp->res.setCompleteRequestHandler( 40 assertPowerSubsystemCollectionGet); 41 doPowerSubsystemCollection( 42 shareAsyncResp, chassisId, 43 std::make_optional<std::string>(validChassisPath)); 44 } 45 46 } // namespace 47 } // namespace redfish 48