blob: 8e1995abeef579018536be16e172d38790aefbd2 [file]
#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