1 #include "app.hpp"
2 #include "async_resp.hpp"
3 #include "chassis.hpp"
4 #include "http_request.hpp"
5 #include "http_response.hpp"
6
7 #include <boost/beast/core/string_type.hpp>
8 #include <boost/beast/http/message.hpp>
9 #include <boost/beast/http/verb.hpp>
10 #include <nlohmann/json.hpp>
11
12 #include <functional>
13 #include <memory>
14 #include <string>
15 #include <system_error>
16 #include <utility>
17
18 #include <gtest/gtest.h>
19
20 namespace redfish
21 {
22 namespace
23 {
24
assertChassisResetActionInfoGet(const std::string & chassisId,crow::Response & res)25 void assertChassisResetActionInfoGet(const std::string& chassisId,
26 crow::Response& res)
27 {
28 EXPECT_EQ(res.jsonValue["@odata.type"], "#ActionInfo.v1_1_2.ActionInfo");
29 EXPECT_EQ(res.jsonValue["@odata.id"],
30 "/redfish/v1/Chassis/" + chassisId + "/ResetActionInfo");
31 EXPECT_EQ(res.jsonValue["Name"], "Reset Action Info");
32
33 EXPECT_EQ(res.jsonValue["Id"], "ResetActionInfo");
34
35 nlohmann::json::array_t parameters;
36 nlohmann::json::object_t parameter;
37 parameter["Name"] = "ResetType";
38 parameter["Required"] = true;
39 parameter["DataType"] = "String";
40 nlohmann::json::array_t allowed;
41 allowed.emplace_back("PowerCycle");
42 parameter["AllowableValues"] = std::move(allowed);
43 parameters.emplace_back(std::move(parameter));
44
45 EXPECT_EQ(res.jsonValue["Parameters"], parameters);
46 }
47
TEST(HandleChassisResetActionInfoGet,StaticAttributesAreExpected)48 TEST(HandleChassisResetActionInfoGet, StaticAttributesAreExpected)
49 {
50 auto response = std::make_shared<bmcweb::AsyncResp>();
51 std::error_code err;
52 crow::Request request{{boost::beast::http::verb::get, "/whatever", 11},
53 err};
54
55 std::string fakeChassis = "fakeChassis";
56 response->res.setCompleteRequestHandler(
57 std::bind_front(assertChassisResetActionInfoGet, fakeChassis));
58
59 crow::App app;
60 handleChassisResetActionInfoGet(app, request, response, fakeChassis);
61 }
62
63 } // namespace
64 } // namespace redfish
65