00001 00008 /************************************************************************** 00009 00010 begin : Fri Dec 18 2002 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 #ifndef MOCKPP_MOCKOBJECTS_H 00031 #define MOCKPP_MOCKOBJECTS_H 00032 00033 #include <mockpp/mockpp.h> // always first 00034 00035 #include <mockpp/VerifiableList.h> 00036 00037 00038 MOCKPP_NS_START 00039 00052 class MOCKPP_API_DECL0 MockObject : public VerifiableList 00053 { 00054 public: 00055 00060 MockObject(const String &name, VerifiableList *parent = 0); 00061 00064 void notImplemented(); 00065 00069 virtual void verify(); 00070 00073 virtual void reset(); 00074 00075 private: 00076 00077 MockObject (const MockObject &); // forbid 00078 MockObject& operator=(MockObject&); 00079 00080 typedef MOCKPP_STL::vector<const Verifiable*> VerifierVec; 00081 00087 static void verifyAnObject(VerifiableList* anObject); 00088 00093 static void verifySubFields(Verifiable *anObject, 00094 VerifierVec &alreadyProcessed); 00095 00100 static void verifyField(Verifiable *anObject, 00101 VerifierVec &alreadyProcessed); 00102 00107 static bool isVerifiable(const Verifiable *anObject); 00108 00109 String myName; 00110 }; 00111 00112 00113 MOCKPP_NS_END 00114 00115 00116 #endif // MOCKPP_MOCKOBJECTS_H