00001 00008 /************************************************************************** 00009 00010 begin : Thu Aug 26 2004 00011 copyright : (C) 2002-2010 by Ewald Arnold 00012 email : mockpp at ewald-arnold dot de 00013 00014 This program is free software; you can redistribute it and/or modify 00015 it under the terms of the GNU Lesser General Public License as 00016 published by the Free Software Foundation; either version 2 of the License, 00017 or (at your option) any later version. 00018 00019 This program is distributed in the hope that it will be useful, 00020 but WITHOUT ANY WARRANTY; without even the implied warranty of 00021 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00022 GNU General Public License for more details. 00023 00024 You should have received a copy of the GNU Lesser General Public License 00025 along with this program; if not, write to the Free Software 00026 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00027 00028 **/ 00029 00030 00031 #define MOCKPP_NEED_EXPORTS 00032 #include <mockpp/mockpp.h> // always first 00033 00034 #include <mockpp/matcher/InvokeAtMostMatcher.h> 00035 00036 00037 MOCKPP_NS_START 00038 00039 00040 MOCKPP_API_IMPL0 InvokeAtMostMatcher::InvokeAtMostMatcher( int count ) 00041 : expectedCount(count) 00042 { 00043 } 00044 00045 00046 MOCKPP_API_IMPL0 InvokeAtMostMatcher::~InvokeAtMostMatcher() 00047 { 00048 } 00049 00050 00051 MOCKPP_API_IMPL(bool) InvokeAtMostMatcher::matches( ) 00052 { 00053 return getInvocationCount() <= expectedCount; 00054 } 00055 00056 00057 MOCKPP_API_IMPL(void) InvokeAtMostMatcher::verify() 00058 { 00059 String fmt (MOCKPP_PCHAR("expected method was invoked too often, expected ") 00060 MOCKPP_PCHAR("at most %1 times, was invoked %2 times")); 00061 fmt << expectedCount << getInvocationCount(); 00062 00063 assertTrue(__LINE__, __FILE__, fmt, 00064 getInvocationCount() <= expectedCount); 00065 } 00066 00067 00068 MOCKPP_API_IMPL(bool) InvokeAtMostMatcher::hasDescription() 00069 { 00070 return true; 00071 } 00072 00073 00074 MOCKPP_API_IMPL(String) InvokeAtMostMatcher::describeTo( String &buffer ) const 00075 { 00076 String fmt = MOCKPP_PCHAR("expected at most %1 times, invoked %2 times"); 00077 fmt << expectedCount << getInvocationCount(); 00078 buffer += fmt; 00079 return buffer; 00080 } 00081 00082 00083 MOCKPP_NS_END 00084 00085