mock_log_unittest.cc revision d34a47c06c38f2594c85b14b0f9cee2bf37c0e84
18a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain// Copyright (c) 2012 The Chromium OS Authors. All rights reserved. 28a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain// Use of this source code is governed by a BSD-style license that can be 38a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain// found in the LICENSE file. 48a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 58a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain#include "shill/mock_log.h" 68a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 78a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain#include <gmock/gmock.h> 88a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain#include <gtest/gtest.h> 98a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 108a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain#include "shill/scope_logger.h" 118a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 128a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morainusing ::std::string; 138a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morainusing ::testing::_; 148a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 158a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morainnamespace shill { 168a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 178a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morainclass MockLogTest : public testing::Test { 188a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain protected: 198a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain MockLogTest() {} 208a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 218a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain void LogSomething(const string &message) const { 228a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain LOG(INFO) << message; 238a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain } 248a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain void SlogSomething(const string &message) const { 258a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain ScopeLogger::GetInstance()->EnableScopesByName("manager"); 26d34a47c06c38f2594c85b14b0f9cee2bf37c0e84Christopher Wiley ScopeLogger::GetInstance()->set_verbose_level(2); 278a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain SLOG(Manager, 2) << message; 28d34a47c06c38f2594c85b14b0f9cee2bf37c0e84Christopher Wiley ScopeLogger::GetInstance()->EnableScopesByName("-manager"); 29d34a47c06c38f2594c85b14b0f9cee2bf37c0e84Christopher Wiley ScopeLogger::GetInstance()->set_verbose_level(0); 308a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain } 318a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain}; 328a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 338a5726aa96d7a585dccb67d35038b8efeccfd46bGary MorainTEST_F(MockLogTest, MatchMessageOnly) { 348a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain ScopedMockLog log; 358a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain const string kMessage("Something"); 368a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain EXPECT_CALL(log, Log(_, _, kMessage)); 378a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain LogSomething(kMessage); 388a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain} 398a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 408a5726aa96d7a585dccb67d35038b8efeccfd46bGary MorainTEST_F(MockLogTest, MatchSeverityAndMessage) { 418a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain ScopedMockLog log; 428a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain const string kMessage("Something"); 438a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain EXPECT_CALL(log, Log(logging::LOG_INFO, _, kMessage)); 448a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain LogSomething(kMessage); 458a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain} 468a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 478a5726aa96d7a585dccb67d35038b8efeccfd46bGary MorainTEST_F(MockLogTest, MatchSeverityAndFileAndMessage) { 488a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain ScopedMockLog log; 498a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain const string kMessage("Something"); 508a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain EXPECT_CALL(log, Log(logging::LOG_INFO, "mock_log_unittest.cc", kMessage)); 518a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain LogSomething(kMessage); 528a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain} 538a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 548a5726aa96d7a585dccb67d35038b8efeccfd46bGary MorainTEST_F(MockLogTest, MatchEmptyString) { 558a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain ScopedMockLog log; 568a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain const string kMessage(""); 578a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain EXPECT_CALL(log, Log(_, _, kMessage)); 588a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain LogSomething(kMessage); 598a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain} 608a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 618a5726aa96d7a585dccb67d35038b8efeccfd46bGary MorainTEST_F(MockLogTest, MatchMessageContainsBracketAndNewline) { 628a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain ScopedMockLog log; 638a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain const string kMessage("blah [and more blah] \n yet more blah\n\n\n"); 648a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain EXPECT_CALL(log, Log(_, _, kMessage)); 658a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain LogSomething(kMessage); 668a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain} 678a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 688a5726aa96d7a585dccb67d35038b8efeccfd46bGary MorainTEST_F(MockLogTest, MatchSlog) { 698a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain ScopedMockLog log; 708a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain const string kMessage("Something"); 718a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain EXPECT_CALL(log, Log(_, _, kMessage)); 728a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain SlogSomething(kMessage); 738a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain} 748a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 758a5726aa96d7a585dccb67d35038b8efeccfd46bGary MorainTEST_F(MockLogTest, MatchWithGmockMatchers) { 768a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain ScopedMockLog log; 778a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain const string kMessage("Something"); 788a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain EXPECT_CALL(log, Log(::testing::Lt(::logging::LOG_ERROR), 798a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain ::testing::EndsWith(".cc"), 808a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain ::testing::StartsWith("Some"))); 818a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain LogSomething(kMessage); 828a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain} 838a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain 848a5726aa96d7a585dccb67d35038b8efeccfd46bGary Morain} // namespace shill 85