113481Sgiacomo.travaglini@arm.com// Copyright 2013, Google Inc. 213481Sgiacomo.travaglini@arm.com// All rights reserved. 313481Sgiacomo.travaglini@arm.com// 413481Sgiacomo.travaglini@arm.com// Redistribution and use in source and binary forms, with or without 513481Sgiacomo.travaglini@arm.com// modification, are permitted provided that the following conditions are 613481Sgiacomo.travaglini@arm.com// met: 713481Sgiacomo.travaglini@arm.com// 813481Sgiacomo.travaglini@arm.com// * Redistributions of source code must retain the above copyright 913481Sgiacomo.travaglini@arm.com// notice, this list of conditions and the following disclaimer. 1013481Sgiacomo.travaglini@arm.com// * Redistributions in binary form must reproduce the above 1113481Sgiacomo.travaglini@arm.com// copyright notice, this list of conditions and the following disclaimer 1213481Sgiacomo.travaglini@arm.com// in the documentation and/or other materials provided with the 1313481Sgiacomo.travaglini@arm.com// distribution. 1413481Sgiacomo.travaglini@arm.com// * Neither the name of Google Inc. nor the names of its 1513481Sgiacomo.travaglini@arm.com// contributors may be used to endorse or promote products derived from 1613481Sgiacomo.travaglini@arm.com// this software without specific prior written permission. 1713481Sgiacomo.travaglini@arm.com// 1813481Sgiacomo.travaglini@arm.com// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1913481Sgiacomo.travaglini@arm.com// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2013481Sgiacomo.travaglini@arm.com// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2113481Sgiacomo.travaglini@arm.com// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2213481Sgiacomo.travaglini@arm.com// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2313481Sgiacomo.travaglini@arm.com// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2413481Sgiacomo.travaglini@arm.com// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2513481Sgiacomo.travaglini@arm.com// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2613481Sgiacomo.travaglini@arm.com// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2713481Sgiacomo.travaglini@arm.com// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2813481Sgiacomo.travaglini@arm.com// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2913481Sgiacomo.travaglini@arm.com// 3013481Sgiacomo.travaglini@arm.com// Author: marcus.boerger@google.com (Marcus Boerger) 3113481Sgiacomo.travaglini@arm.com 3213481Sgiacomo.travaglini@arm.com// Google Mock - a framework for writing C++ mock classes. 3313481Sgiacomo.travaglini@arm.com// 3413481Sgiacomo.travaglini@arm.com// This file implements some matchers that depend on gmock-generated-matchers.h. 3513481Sgiacomo.travaglini@arm.com// 3613481Sgiacomo.travaglini@arm.com// Note that tests are implemented in gmock-matchers_test.cc rather than 3713481Sgiacomo.travaglini@arm.com// gmock-more-matchers-test.cc. 3813481Sgiacomo.travaglini@arm.com 3913481Sgiacomo.travaglini@arm.com#ifndef GMOCK_GMOCK_MORE_MATCHERS_H_ 4013481Sgiacomo.travaglini@arm.com#define GMOCK_GMOCK_MORE_MATCHERS_H_ 4113481Sgiacomo.travaglini@arm.com 4213481Sgiacomo.travaglini@arm.com#include "gmock/gmock-generated-matchers.h" 4313481Sgiacomo.travaglini@arm.com 4413481Sgiacomo.travaglini@arm.comnamespace testing { 4513481Sgiacomo.travaglini@arm.com 4613481Sgiacomo.travaglini@arm.com// Defines a matcher that matches an empty container. The container must 4713481Sgiacomo.travaglini@arm.com// support both size() and empty(), which all STL-like containers provide. 4813481Sgiacomo.travaglini@arm.comMATCHER(IsEmpty, negation ? "isn't empty" : "is empty") { 4913481Sgiacomo.travaglini@arm.com if (arg.empty()) { 5013481Sgiacomo.travaglini@arm.com return true; 5113481Sgiacomo.travaglini@arm.com } 5213481Sgiacomo.travaglini@arm.com *result_listener << "whose size is " << arg.size(); 5313481Sgiacomo.travaglini@arm.com return false; 5413481Sgiacomo.travaglini@arm.com} 5513481Sgiacomo.travaglini@arm.com 5613481Sgiacomo.travaglini@arm.com} // namespace testing 5713481Sgiacomo.travaglini@arm.com 5813481Sgiacomo.travaglini@arm.com#endif // GMOCK_GMOCK_MORE_MATCHERS_H_ 59