#ifndef MBGL_TEST_FIXTURE_LOG_OBSERVER #define MBGL_TEST_FIXTURE_LOG_OBSERVER #include #include #include #include #include namespace mbgl { class FixtureLogObserver : public Log::Observer { public: struct LogMessage { LogMessage(EventSeverity severity_, Event event_, int64_t code_, const std::string &msg_); LogMessage(); bool operator==(const LogMessage &rhs) const; const mapbox::util::optional severity; const mapbox::util::optional event; const mapbox::util::optional code; const mapbox::util::optional msg; mutable bool checked = false; }; ~FixtureLogObserver(); // Log::Observer implementation virtual bool onRecord(EventSeverity severity, Event event, int64_t code, const std::string &msg) override; size_t count(const LogMessage &message) const; std::vector unchecked() const; public: std::vector messages; }; ::std::ostream &operator<<(::std::ostream &os, const std::vector &messages); ::std::ostream &operator<<(::std::ostream &os, const FixtureLogObserver::LogMessage &message); } #endif