30 行
888 B
C++
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"));
|
|
}
|