| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- //
- // common_test.cpp
- // logger-test
- //
- // Created by Sam Jaffe on 8/13/20.
- //
- #include "logger/level.h"
- #include <gmock/gmock.h>
- #include "../src/common.h"
- #include "logger/exception.h"
- using level_info = std::pair<logging::level, std::string>;
- struct SerializerTest : testing::TestWithParam<level_info> {};
- using namespace logging;
- TEST_P(SerializerTest, LevelFromString) {
- EXPECT_THAT(level_from_string(GetParam().second), GetParam().first);
- }
- TEST_P(SerializerTest, LevelToString) {
- EXPECT_THAT(level_to_string(GetParam().first),
- testing::Eq(GetParam().second));
- }
- MATCHER(IsUpperCase, "") {
- return !std::any_of(arg.begin(), arg.end(), &islower);
- }
- TEST_P(SerializerTest, OstreamWritesUppercase) {
- std::stringstream ss;
- ss << GetParam().first;
- EXPECT_THAT(ss.str(), testing::StrCaseEq(GetParam().second));
- EXPECT_THAT(ss.str(), IsUpperCase());
- }
- TEST_P(SerializerTest, ToStringCanWriteBothCases) {
- EXPECT_THAT(to_string(GetParam().first, false),
- testing::Eq(GetParam().second));
- EXPECT_THAT(to_string(GetParam().first, true),
- testing::StrCaseEq(GetParam().second));
- EXPECT_THAT(to_string(GetParam().first, true), IsUpperCase());
- }
- level_info pairs[] = {
- {level::trace, "trace"}, {level::debug, "debug"},
- {level::info, "info"}, {level::warning, "warning"},
- {level::error, "error"}, {level::critical, "critical"},
- {level::fatal, "fatal"}, {level::none, "none"},
- };
- INSTANTIATE_TEST_CASE_P(LogLevel, SerializerTest, testing::ValuesIn(pairs));
- TEST(LogLevelSerializerTest, LevelFromStringThrowsOnUnknown) {
- EXPECT_THROW(level_from_string("FAKE"), invalid_property);
- }
- TEST(LogLevelSerializerTest, LevelToStringThrowsOnUnknown) {
- EXPECT_THROW(level_to_string(static_cast<level>(100)), std::domain_error);
- }
|