blob: d0bbf8e068f674d5522757f2cf0a003ffac4f95b [file] [log] [blame]
Ed Tanous40e9b922024-09-10 13:50:16 -07001// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright OpenBMC Authors
Ed Tanous2c9efc32022-07-31 22:08:26 -07003#include "verb.hpp"
4
5#include <boost/beast/http/verb.hpp>
6
7#include <map>
8#include <optional>
9#include <string_view>
10
Ed Tanous478b7ad2024-07-15 19:11:54 -070011#include <gtest/gtest.h>
Ed Tanous2c9efc32022-07-31 22:08:26 -070012
13using BoostVerb = boost::beast::http::verb;
14
15TEST(BoostToHttpVerb, ValidCase)
16{
17 std::map<HttpVerb, BoostVerb> verbMap = {
18 {HttpVerb::Delete, BoostVerb::delete_},
19 {HttpVerb::Get, BoostVerb::get},
20 {HttpVerb::Head, BoostVerb::head},
21 {HttpVerb::Options, BoostVerb::options},
22 {HttpVerb::Patch, BoostVerb::patch},
23 {HttpVerb::Post, BoostVerb::post},
24 {HttpVerb::Put, BoostVerb::put},
25 };
26
27 for (int verbIndex = 0; verbIndex < static_cast<int>(HttpVerb::Max);
28 ++verbIndex)
29 {
30 HttpVerb httpVerb = static_cast<HttpVerb>(verbIndex);
31 std::optional<HttpVerb> verb = httpVerbFromBoost(verbMap[httpVerb]);
Ed Tanouse01d0c32023-06-30 13:21:32 -070032 EXPECT_EQ(verb, httpVerb);
Ed Tanous2c9efc32022-07-31 22:08:26 -070033 }
34}
35
36TEST(BoostToHttpVerbTest, InvalidCase)
37{
38 std::optional<HttpVerb> verb = httpVerbFromBoost(BoostVerb::unknown);
39 EXPECT_FALSE(verb.has_value());
40}
41
42TEST(HttpVerbToStringTest, ValidCase)
43{
44 std::map<HttpVerb, std::string_view> verbMap = {
45 {HttpVerb::Delete, "DELETE"}, {HttpVerb::Get, "GET"},
46 {HttpVerb::Head, "HEAD"}, {HttpVerb::Options, "OPTIONS"},
47 {HttpVerb::Patch, "PATCH"}, {HttpVerb::Post, "POST"},
48 {HttpVerb::Put, "PUT"},
49 };
50
51 for (int verbIndex = 0; verbIndex < static_cast<int>(HttpVerb::Max);
52 ++verbIndex)
53 {
54 HttpVerb httpVerb = static_cast<HttpVerb>(verbIndex);
55 EXPECT_EQ(httpVerbToString(httpVerb), verbMap[httpVerb]);
56 }
Patrick Williams89492a12023-05-10 07:51:34 -050057}