| #include "app.hpp" |
| #include "async_resp.hpp" |
| #include "dbus_utility.hpp" |
| #include "http_request.hpp" |
| #include "http_response.hpp" |
| #include "network_adapter.hpp" |
| #include "snapshot_fixture.hpp" |
| |
| #include <nlohmann/json.hpp> |
| |
| #include <gmock/gmock.h> |
| #include <gtest/gtest.h> |
| |
| using ::testing::Contains; |
| |
| namespace redfish |
| { |
| namespace |
| { |
| |
| TEST_F(SnapshotFixture, GetNetworkAdaptersReturnsCorrectResponse) |
| { |
| handleChassisNetworkAdapterCollectionGetSysfs(share_async_resp_, "bmc"); |
| |
| nlohmann::json& json = share_async_resp_->res.jsonValue; |
| EXPECT_EQ(json["@odata.id"], "/redfish/v1/Chassis/bmc/NetworkAdapters"); |
| EXPECT_EQ(json["@odata.type"], |
| "#NetworkAdapterCollection.NetworkAdapterCollection"); |
| EXPECT_EQ(json["Name"], "Network adapter Collection for chassis bmc"); |
| EXPECT_THAT( |
| json["Members"], |
| Contains(nlohmann::json( |
| {{"@odata.id", "/redfish/v1/Chassis/bmc/NetworkAdapters/0"}}))); |
| EXPECT_EQ(json["Members@odata.count"], 1); |
| } |
| |
| TEST_F(SnapshotFixture, GetNetworkAdapterReturnsCorrectResponse) |
| { |
| handleChassisNetworkAdapterGetSysfs(share_async_resp_, "bmc", "0"); |
| |
| nlohmann::json& json = share_async_resp_->res.jsonValue; |
| EXPECT_EQ(json["@odata.id"], "/redfish/v1/Chassis/bmc/NetworkAdapters/0"); |
| EXPECT_EQ(json["@odata.type"], "#NetworkAdapter.NetworkAdapter"); |
| EXPECT_EQ(json["Name"], "Network adapter"); |
| EXPECT_THAT(json["Members"], |
| Contains(nlohmann::json( |
| {{"@odata.id", |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports"}}))); |
| EXPECT_EQ(json["Members@odata.count"], 1); |
| } |
| |
| TEST_F(SnapshotFixture, GetPortCollectionReturnsCorrectResponse) |
| { |
| handleNetworkPortCollectionGetSysfs(share_async_resp_, "bmc", "0"); |
| |
| nlohmann::json& json = share_async_resp_->res.jsonValue; |
| EXPECT_EQ(json["@odata.id"], |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports"); |
| EXPECT_EQ(json["@odata.type"], "#PortCollection.PortCollection"); |
| EXPECT_THAT( |
| json["Members"], |
| Contains(nlohmann::json( |
| {{"@odata.id", |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/ncsi"}}))); |
| EXPECT_THAT( |
| json["Members"], |
| Contains(nlohmann::json( |
| {{"@odata.id", |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/gusbem0"}}))); |
| EXPECT_THAT( |
| json["Members"], |
| Contains(nlohmann::json( |
| {{"@odata.id", |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/front"}}))); |
| EXPECT_EQ(json["Members@odata.count"], 3); |
| EXPECT_EQ(json["Name"], "Network ports"); |
| } |
| |
| TEST_F(SnapshotFixture, GetPortsReturnsCorrectResponse1) |
| { |
| handleNetworkPortGetSysfs(share_async_resp_, "bmc", "0", "ncsi"); |
| |
| nlohmann::json& json = share_async_resp_->res.jsonValue; |
| EXPECT_EQ(json["@odata.id"], |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/ncsi"); |
| EXPECT_EQ(json["@odata.type"], "#Port.Port"); |
| EXPECT_EQ(json["CurrentSpeedGbps"], 0.1); |
| EXPECT_EQ(json["Name"], "ncsi"); |
| EXPECT_THAT(json["Ethernet"]["AssociatedMACAddresses"], |
| Contains("24:95:2f:8f:18:0c")); |
| EXPECT_EQ(json["Ethernet"]["AssociatedMACAddresses"].size(), 1); |
| EXPECT_EQ(json["LinkState"], "Enabled"); |
| EXPECT_EQ(json["LinkStatus"], "LinkUp"); |
| EXPECT_EQ(json["Metrics"]["@odata.id"], |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/ncsi/Metrics"); |
| } |
| |
| TEST_F(SnapshotFixture, GetPortsReturnsCorrectResponse2) |
| { |
| handleNetworkPortGetSysfs(share_async_resp_, "bmc", "0", "gusbem0"); |
| |
| nlohmann::json& json = share_async_resp_->res.jsonValue; |
| EXPECT_EQ(json["@odata.id"], |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/gusbem0"); |
| EXPECT_EQ(json["@odata.type"], "#Port.Port"); |
| EXPECT_EQ(json["CurrentSpeedGbps"], 0.0); |
| EXPECT_EQ(json["Name"], "gusbem0"); |
| EXPECT_THAT(json["Ethernet"]["AssociatedMACAddresses"], |
| Contains("3a:1b:f6:ef:56:62")); |
| EXPECT_EQ(json["Ethernet"]["AssociatedMACAddresses"].size(), 1); |
| EXPECT_EQ(json["LinkState"], "Enabled"); |
| EXPECT_EQ(json["LinkStatus"], "LinkUp"); |
| EXPECT_EQ( |
| json["Metrics"]["@odata.id"], |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/gusbem0/Metrics"); |
| } |
| |
| TEST_F(SnapshotFixture, GetPortsReturnsCorrectResponse3) |
| { |
| handleNetworkPortGetSysfs(share_async_resp_, "bmc", "0", "front"); |
| |
| nlohmann::json& json = share_async_resp_->res.jsonValue; |
| EXPECT_EQ(json["@odata.id"], |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/front"); |
| EXPECT_EQ(json["@odata.type"], "#Port.Port"); |
| EXPECT_EQ(json["CurrentSpeedGbps"], 1); |
| EXPECT_EQ(json["Name"], "front"); |
| EXPECT_THAT(json["Ethernet"]["AssociatedMACAddresses"], |
| Contains("24:95:2f:8f:18:0c")); |
| EXPECT_EQ(json["Ethernet"]["AssociatedMACAddresses"].size(), 1); |
| EXPECT_EQ(json["LinkState"], "Enabled"); |
| EXPECT_EQ(json["LinkStatus"], "LinkUp"); |
| EXPECT_EQ(json["Locations"]["ServiceLable"], "FrontServiceLable"); |
| EXPECT_EQ(json["Metrics"]["@odata.id"], |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/front/Metrics"); |
| } |
| |
| TEST_F(SnapshotFixture, GetNetworkPortMetricReturnsCorrectResponse1) |
| { |
| handleNetworkPortMetricGetSysfs(share_async_resp_, "bmc", "0", "ncsi"); |
| |
| nlohmann::json& json = share_async_resp_->res.jsonValue; |
| EXPECT_EQ(json["@odata.id"], |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/ncsi/Metrics"); |
| EXPECT_EQ(json["@odata.type"], "#PortMetrics.PortMetrics"); |
| EXPECT_EQ(json["Name"], "Network port metrics"); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["CarrierChanges"], 1); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["RXCRCErrors"], 4); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["RXErrors"], 4); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["ReceivedPackets"], 3016523); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["ReceivedPacketsDropped"], 0); |
| } |
| |
| TEST_F(SnapshotFixture, GetNetworkPortMetricReturnsCorrectResponse2) |
| { |
| handleNetworkPortMetricGetSysfs(share_async_resp_, "bmc", "0", "gusbem0"); |
| |
| nlohmann::json& json = share_async_resp_->res.jsonValue; |
| EXPECT_EQ( |
| json["@odata.id"], |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/gusbem0/Metrics"); |
| EXPECT_EQ(json["@odata.type"], "#PortMetrics.PortMetrics"); |
| EXPECT_EQ(json["Name"], "Network port metrics"); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["CarrierChanges"], 4); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["RXCRCErrors"], 0); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["RXErrors"], 0); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["ReceivedPackets"], 13218); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["ReceivedPacketsDropped"], 0); |
| } |
| |
| TEST_F(SnapshotFixture, GetNetworkPortMetricReturnsCorrectResponse3) |
| { |
| handleNetworkPortMetricGetSysfs(share_async_resp_, "bmc", "0", "front"); |
| |
| nlohmann::json& json = share_async_resp_->res.jsonValue; |
| EXPECT_EQ(json["@odata.id"], |
| "/redfish/v1/Chassis/bmc/NetworkAdapters/0/Ports/front/Metrics"); |
| EXPECT_EQ(json["@odata.type"], "#PortMetrics.PortMetrics"); |
| EXPECT_EQ(json["Name"], "Network port metrics"); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["CarrierChanges"], 1); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["RXCRCErrors"], 0); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["RXErrors"], 0); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["ReceivedPackets"], 458937); |
| EXPECT_EQ(json["Oem"]["Google"]["Networking"]["ReceivedPacketsDropped"], 0); |
| } |
| |
| } // namespace |
| } // namespace redfish |