#include #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")); }