00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef MOCKPP_THROWABLELIST_H
00031 #define MOCKPP_THROWABLELIST_H
00032
00033 #include <mockpp/mockpp.h>
00034
00035 #include MOCKPP_VECTOR_H
00036
00037 #include <mockpp/Verifiable.h>
00038 #include <mockpp/Throwable.h>
00039
00040
00041 MOCKPP_NS_START
00042
00043
00048 class MOCKPP_API_DECL0 ThrowableList : public Verifiable
00049 {
00050 public:
00051
00056 ThrowableList(const String &aName, VerifiableList *parent);
00057
00060 virtual ~ThrowableList() throw();
00061
00070 void push_back(Throwable* t);
00071
00079 void addObjectToThrow(Throwable* t);
00080
00088 template <class T>
00089 void push_back(const T &w)
00090 {
00091 addObjectToThrow(w);
00092 }
00093
00100 template <class T>
00101 void addObjectToThrow(const T &w)
00102 {
00103 push_back(make_throwable(w));
00104 }
00105
00109 Throwable *nextThrowableObject();
00110
00113 bool hasMoreObjects() const;
00114
00119 Throwable * at(unsigned i);
00120
00124 virtual void verify();
00125
00128 virtual void reset();
00129
00134 unsigned size() const;
00135
00136 private:
00137
00138 ThrowableList (const ThrowableList &);
00139 ThrowableList& operator=(ThrowableList&);
00140
00141 MOCKPP_STL::vector<Throwable *> list;
00142 MOCKPP_STL::vector<Throwable *> already_used;
00143 };
00144
00145
00146 MOCKPP_NS_END
00147
00148
00149 #endif // MOCKPP_THROWABLELIST_H