|
|
@@ -170,3 +170,68 @@ TEST(PatternLayoutTest, TokenCanBeSizeBound) {
|
|
|
EXPECT_THAT(DoFormat("%6.8m", getpkt("HELLO FRIEND")),
|
|
|
Eq("HELLO FR"));
|
|
|
}
|
|
|
+
|
|
|
+#include "mock_logger.h"
|
|
|
+#include "logger/logger.h"
|
|
|
+
|
|
|
+using namespace logging;
|
|
|
+using namespace logging::property;
|
|
|
+properties const schema{_obj({
|
|
|
+ {"configuration", _obj({
|
|
|
+ {"appenders", _obj({
|
|
|
+ {"Stub", _obj({
|
|
|
+ {"PatternLayout", _obj({
|
|
|
+ {"pattern", _v("%m")},
|
|
|
+ {"header", _v("HEADER-")},
|
|
|
+ {"footer", _v("-FOOTER")}
|
|
|
+ })}
|
|
|
+ })}
|
|
|
+ })},
|
|
|
+ {"loggers", _obj({
|
|
|
+ {"root", _obj({{"appenders", _obj({{"ref", _v("Stub")}})}})}
|
|
|
+ })}
|
|
|
+ })}
|
|
|
+})};
|
|
|
+
|
|
|
+class HeaderFooterTest : public testing::Test {
|
|
|
+protected:
|
|
|
+ void SetUp() override;
|
|
|
+ void TearDown() override;
|
|
|
+protected:
|
|
|
+ std::shared_ptr<StubAppender> appender;
|
|
|
+private:
|
|
|
+ appenders::scoped_binding abinding_;
|
|
|
+};
|
|
|
+
|
|
|
+void HeaderFooterTest::SetUp() {
|
|
|
+ appender = std::make_shared<StubAppender>();
|
|
|
+ auto GetStub = [this](properties const &) { return appender; };
|
|
|
+ abinding_ = appenders::instance().bind_scoped("Stub", GetStub);
|
|
|
+}
|
|
|
+
|
|
|
+void HeaderFooterTest::TearDown() {
|
|
|
+ abinding_.reset();
|
|
|
+ appender.reset();
|
|
|
+}
|
|
|
+
|
|
|
+using PatternLayoutHeaderTest = HeaderFooterTest;
|
|
|
+
|
|
|
+TEST_F(PatternLayoutHeaderTest, ProvidesHeader) {
|
|
|
+ manager mgr;
|
|
|
+ mgr.configure(schema);
|
|
|
+ using testing::Eq;
|
|
|
+ EXPECT_THAT(appender->sstream.str(), Eq("HEADER-"));
|
|
|
+ mgr.get().log(level::error, "HELLO");
|
|
|
+ EXPECT_THAT(appender->sstream.str(), Eq("HEADER-HELLO"));
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(PatternLayoutHeaderTest, ProvidesFooter) {
|
|
|
+ using testing::Eq;
|
|
|
+ {
|
|
|
+ manager mgr;
|
|
|
+ mgr.configure(schema);
|
|
|
+ appender->sstream.str("");
|
|
|
+ mgr.get().log(level::error, "HELLO");
|
|
|
+ }
|
|
|
+ EXPECT_THAT(appender->sstream.str(), Eq("HELLO-FOOTER"));
|
|
|
+}
|