// suite.h
#ifndef SUITE_H
#define SUITE_H
#include "test.h" // includes <string>, <iosfwd>
#include <vector>
using std::string;
using std::ostream;
using std::vector;
class TestSuiteError;
class Suite
{
public:
Suite(const string& name, ostream* osptr = 0);
string getName() const;
long getNumPassed() const;
long getNumFailed() const;
const ostream* getStream() const;
void setStream(ostream* osptr);
void addTest(Test* t) throw (TestSuiteError);
void addSuite(const Suite&) throw(TestSuiteError);
void run(); // Calls Test::run() repeatedly
long report() const;
void free(); // deletes tests
private:
string m_name;
ostream* m_osptr;
vector<Test*> m_tests;
void reset();
// Disallowed ops:
Suite(const Suite&);
Suite& operator=(const Suite&);
};
inline
Suite::Suite(const string& name, ostream* osptr)
: m_name(name)
{
m_osptr = osptr;
}
inline
string Suite::getName() const
{
return m_name;
}
inline
const ostream* Suite::getStream() const
{
return m_osptr;
}
inline
void Suite::setStream(ostream* osptr)
{
m_osptr = osptr;
}
#endif