diff options
Diffstat (limited to 'test/http/crow_getroutes_test.cpp')
-rw-r--r-- | test/http/crow_getroutes_test.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/http/crow_getroutes_test.cpp b/test/http/crow_getroutes_test.cpp new file mode 100644 index 0000000000..23a511e735 --- /dev/null +++ b/test/http/crow_getroutes_test.cpp @@ -0,0 +1,71 @@ +#include "app.hpp" +#include "routing.hpp" + +#include <boost/beast/http/status.hpp> + +#include <memory> + +#include <gmock/gmock.h> // IWYU pragma: keep +#include <gtest/gtest.h> // IWYU pragma: keep + +// IWYU pragma: no_include <gtest/gtest-message.h> +// IWYU pragma: no_include <gtest/gtest-test-part.h> +// IWYU pragma: no_include "gtest/gtest_pred_impl.h" +// IWYU pragma: no_include <gmock/gmock-matchers.h> +// IWYU pragma: no_include <gmock/gmock-more-matchers.h> +// IWYU pragma: no_include <gtest/gtest-matchers.h> + +namespace crow +{ +namespace +{ + +using ::testing::Eq; +using ::testing::IsEmpty; +using ::testing::Pointee; +using ::testing::UnorderedElementsAre; + +TEST(GetRoutes, TestEmptyRoutes) +{ + App app; + app.validate(); + + EXPECT_THAT(app.getRoutes(), IsEmpty()); +} + +// Tests that static urls are correctly passed +TEST(GetRoutes, TestOneRoute) +{ + App app; + + BMCWEB_ROUTE(app, "/")([]() { return boost::beast::http::status::ok; }); + + // TODO: "/" doesn't get reported in |getRoutes| today. Uncomment this once + // it is fixed + // EXPECT_THAT(app.getRoutes(), + // testing::ElementsAre(Pointee(Eq("/")))); +} + +// Tests that static urls are correctly passed +TEST(GetRoutes, TestlotsOfRoutes) +{ + App app; + BMCWEB_ROUTE(app, "/")([]() { return boost::beast::http::status::ok; }); + BMCWEB_ROUTE(app, "/foo")([]() { return boost::beast::http::status::ok; }); + BMCWEB_ROUTE(app, "/bar")([]() { return boost::beast::http::status::ok; }); + BMCWEB_ROUTE(app, "/baz")([]() { return boost::beast::http::status::ok; }); + BMCWEB_ROUTE(app, "/boo")([]() { return boost::beast::http::status::ok; }); + BMCWEB_ROUTE(app, "/moo")([]() { return boost::beast::http::status::ok; }); + + app.validate(); + + // TODO: "/" doesn't get reported in |getRoutes| today. Uncomment this once + // it is fixed + EXPECT_THAT(app.getRoutes(), UnorderedElementsAre( + // Pointee(Eq("/")), + Pointee(Eq("/foo")), Pointee(Eq("/bar")), + Pointee(Eq("/baz")), Pointee(Eq("/boo")), + Pointee(Eq("/moo")))); +} +} // namespace +} // namespace crow |