| #include <memory> | |
| #include <string> | |
| #include <gtest/gtest.h> | |
| #include "chassis.hpp" | |
| #include "test/redfish-core/lib/snapshot_fixture.hpp" | |
| #include <nlohmann/json.hpp> | |
| namespace redfish { | |
| namespace { | |
| TEST_F(SnapshotFixture, GetChassisAssemblyReturnsTheCorrectResponse) { | |
| getChassisAssembly(app_, CreateRequest(), share_async_resp_, "platform1"); | |
| RunIoUntilDone(); | |
| nlohmann::json& json = share_async_resp_->res.jsonValue; | |
| EXPECT_EQ(json["@odata.id"], "/redfish/v1/Chassis/platform1/Assembly"); | |
| EXPECT_EQ(json["@odata.type"], "#Assembly.v1_3_0.Assembly"); | |
| EXPECT_EQ(json["Id"], "Assembly"); | |
| EXPECT_EQ(json["Name"], "Assembly Collection"); | |
| EXPECT_EQ(json["Assemblies"].size(), json["Assemblies@odata.count"]); | |
| // Order should be CpuCooler0, CpuCooler1, tray | |
| nlohmann::json& cpuCooler0 = json["Assemblies"][0]; | |
| EXPECT_EQ(cpuCooler0["@odata.id"], | |
| "/redfish/v1/Chassis/platform1/Assembly#/Assemblies/0"); | |
| EXPECT_EQ(cpuCooler0["@odata.type"], "#Assembly.v1_3_0.AssemblyData"); | |
| EXPECT_EQ(cpuCooler0["Location"]["PartLocation"]["LocationType"], "Slot"); | |
| EXPECT_EQ(cpuCooler0["Location"]["PartLocation"]["ServiceLabel"], | |
| "CPU0_ANCHORS"); | |
| EXPECT_EQ(cpuCooler0["MemberId"], "0"); | |
| EXPECT_EQ(cpuCooler0["Model"], "Model"); | |
| EXPECT_EQ(cpuCooler0["Name"], "CpuCooler0"); | |
| nlohmann::json& cpuCooler1 = json["Assemblies"][1]; | |
| EXPECT_EQ(cpuCooler1["@odata.id"], | |
| "/redfish/v1/Chassis/platform1/Assembly#/Assemblies/1"); | |
| EXPECT_EQ(cpuCooler1["@odata.type"], "#Assembly.v1_3_0.AssemblyData"); | |
| EXPECT_EQ(cpuCooler1["Location"]["PartLocation"]["LocationType"], "Slot"); | |
| EXPECT_EQ(cpuCooler1["Location"]["PartLocation"]["ServiceLabel"], | |
| "CPU1_ANCHORS"); | |
| EXPECT_EQ(cpuCooler1["MemberId"], "1"); | |
| EXPECT_EQ(cpuCooler1["Model"], "Model"); | |
| EXPECT_EQ(cpuCooler1["Name"], "CpuCooler1"); | |
| nlohmann::json& tray = json["Assemblies"][2]; | |
| EXPECT_EQ(tray["@odata.id"], | |
| "/redfish/v1/Chassis/platform1/Assembly#/Assemblies/2"); | |
| EXPECT_EQ(tray["@odata.type"], "#Assembly.v1_3_0.AssemblyData"); | |
| EXPECT_EQ(tray["Location"]["PartLocation"]["LocationType"], "Slot"); | |
| EXPECT_EQ(tray["Location"]["PartLocation"]["ServiceLabel"], "TRAY"); | |
| EXPECT_EQ(tray["MemberId"], "2"); | |
| EXPECT_EQ(tray["Name"], "tray"); | |
| EXPECT_EQ(share_async_resp_->res.result(), boost::beast::http::status::ok); | |
| } | |
| } // namespace | |
| } // namespace redfish |