| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- //
- // json_layout_test.cxx
- // logger_test
- //
- // Created by Sam Jaffe on 4/13/19.
- //
- #include <gmock/gmock.h>
- #include "resource_factory/prototype_factory.hpp"
- #include "logger/detail/layout.h"
- #include "logger/log_manager.h"
- #include "logger/logpacket.h"
- #include "logger/properties.h"
- TEST(JsonLayoutTest, CanConstructWithNoConfig) {
- EXPECT_NO_THROW(logging::layouts::instance().get("JsonLayout", {}));
- }
- // Thursday, April 4, 2019 6:17:20 PM GMT
- namespace {
- constexpr const int NOW = 1554401840;
- }
- std::string const formatted_output = R"({
- "instant": {
- "epochSecond": 1554401840,
- "nanoOfSecond": 123456000
- },
- "level": "warning",
- "loggerName": "UnitTest",
- "message": "This is a test message"
- })";
- std::string const compact_output = "{\"instant\":{\"epochSecond\":"
- "1554401840,\"nanoOfSecond\":123456000},\"level\":\"warning\","
- "\"loggerName\":\"UnitTest\",\"message\":\"This is a test message\"}";
- TEST(JsonLayoutTest, LogsInformationInJSON) {
- using namespace logging;
- auto playout = layouts::instance().get("JsonLayout", {});
-
- std::stringstream ss;
- playout->format(ss, {{NOW, 123456}, level::warning, {}, "UnitTest",
- "This is a test message"});
-
- using testing::Eq;
- EXPECT_THAT(ss.str(), Eq(formatted_output));
- }
- TEST(JsonLayoutTest, CompactMeansNoWhitespace) {
- using namespace logging;
- using namespace logging::property;
- properties const props{_obj({
- {"compact", _v(true)}
- })};
- auto playout = layouts::instance().get("JsonLayout", props);
-
- std::stringstream ss;
- playout->format(ss, {{NOW, 123456}, level::warning, {}, "UnitTest",
- "This is a test message"});
-
- using testing::Eq;
- EXPECT_THAT(ss.str(), Eq(compact_output));
- }
|