文件
csp/backend/tests/domain_test.cc

30 行
888 B
C++

#include <catch2/catch_test_macros.hpp>
#include "csp/domain/enum_strings.h"
#include "csp/domain/json.h"
TEST_CASE("enum string mapping") {
REQUIRE(csp::domain::ToString(csp::domain::SubmissionStatus::AC) == "AC");
REQUIRE(csp::domain::SubmissionStatusFromString("ac") ==
csp::domain::SubmissionStatus::AC);
REQUIRE(csp::domain::LanguageFromString("cpp") == csp::domain::Language::Cpp);
}
TEST_CASE("domain json serialization hides secrets") {
csp::domain::User u;
u.id = 1;
u.username = "alice";
u.password_salt = "salt";
u.password_hash = "hash";
u.rating = 10;
u.created_at = 100;
auto j = csp::domain::ToPublicJson(u);
REQUIRE(j.isMember("id"));
REQUIRE(j.isMember("username"));
REQUIRE(j.isMember("rating"));
REQUIRE(j.isMember("created_at"));
REQUIRE_FALSE(j.isMember("password_salt"));
REQUIRE_FALSE(j.isMember("password_hash"));
}