|
|
@@ -0,0 +1,26 @@
|
|
|
+#include <gtest/gtest.h>
|
|
|
+#include "errors.hpp"
|
|
|
+
|
|
|
+using namespace svapi;
|
|
|
+
|
|
|
+TEST(Errors, StatusMapping) {
|
|
|
+ EXPECT_EQ(httpStatus(ErrCode::BadRequest), 400);
|
|
|
+ EXPECT_EQ(httpStatus(ErrCode::Unauthorized), 401);
|
|
|
+ EXPECT_EQ(httpStatus(ErrCode::NotFound), 404);
|
|
|
+ EXPECT_EQ(httpStatus(ErrCode::Unprocessable), 422);
|
|
|
+ EXPECT_EQ(httpStatus(ErrCode::Unavailable), 503);
|
|
|
+ EXPECT_EQ(httpStatus(ErrCode::Internal), 500);
|
|
|
+}
|
|
|
+
|
|
|
+TEST(Errors, BodyShape) {
|
|
|
+ auto j = errorBody("not_found", "no such collection");
|
|
|
+ EXPECT_EQ(j["error"]["code"], "not_found");
|
|
|
+ EXPECT_EQ(j["error"]["message"], "no such collection");
|
|
|
+}
|
|
|
+
|
|
|
+TEST(Errors, ApiErrorCarriesFields) {
|
|
|
+ ApiError e(ErrCode::NotFound, "not_found", "gone");
|
|
|
+ EXPECT_EQ(e.code, ErrCode::NotFound);
|
|
|
+ EXPECT_EQ(e.slug, "not_found");
|
|
|
+ EXPECT_STREQ(e.what(), "gone");
|
|
|
+}
|