~ubuntu-branches/ubuntu/wily/psi/wily-proposed

« back to all changes in this revision

Viewing changes to third-party/cppunit/cppunit/include/cppunit/Test.h

  • Committer: Bazaar Package Importer
  • Author(s): Jan Niehusmann
  • Date: 2008-08-28 18:46:52 UTC
  • mfrom: (1.2.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20080828184652-iiik12dl91nq7cdi
Tags: 0.12-2
Uploading to unstable (Closes: Bug#494352)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef CPPUNIT_TEST_H
 
2
#define CPPUNIT_TEST_H
 
3
 
 
4
#include <cppunit/Portability.h>
 
5
#include <string>
 
6
 
 
7
CPPUNIT_NS_BEGIN
 
8
 
 
9
 
 
10
class TestResult;
 
11
class TestPath;
 
12
 
 
13
/*! \brief Base class for all test objects.
 
14
 * \ingroup BrowsingCollectedTestResult
 
15
 *
 
16
 * All test objects should be a subclass of Test.  Some test objects,
 
17
 * TestCase for example, represent one individual test.  Other test
 
18
 * objects, such as TestSuite, are comprised of several tests.  
 
19
 *
 
20
 * When a Test is run, the result is collected by a TestResult object.
 
21
 *
 
22
 * \see TestCase
 
23
 * \see TestSuite
 
24
 */
 
25
class CPPUNIT_API Test
 
26
{
 
27
public:
 
28
  virtual ~Test() {};
 
29
 
 
30
  /*! \brief Run the test, collecting results.
 
31
   */
 
32
  virtual void run( TestResult *result ) =0;
 
33
 
 
34
  /*! \brief Return the number of test cases invoked by run().
 
35
   *
 
36
   * The base unit of testing is the class TestCase.  This
 
37
   * method returns the number of TestCase objects invoked by
 
38
   * the run() method.
 
39
   */
 
40
  virtual int countTestCases () const =0;
 
41
 
 
42
  /*! \brief Returns the number of direct child of the test.
 
43
   */
 
44
  virtual int getChildTestCount() const =0;
 
45
 
 
46
  /*! \brief Returns the child test of the specified index.
 
47
   *
 
48
   * This method test if the index is valid, then call doGetChildTestAt() if 
 
49
   * the index is valid. Otherwise std::out_of_range exception is thrown.
 
50
   *
 
51
   * You should override doGetChildTestAt() method.
 
52
   * 
 
53
   * \param index Zero based index of the child test to return.
 
54
   * \return Pointer on the test. Never \c NULL.
 
55
   * \exception std::out_of_range is \a index is < 0 or >= getChildTestCount().
 
56
   */
 
57
  virtual Test *getChildTestAt( int index ) const;
 
58
 
 
59
  /*! \brief Returns the test name.
 
60
   * 
 
61
   * Each test has a name.  This name may be used to find the
 
62
   * test in a suite or registry of tests.
 
63
   */
 
64
  virtual std::string getName () const =0;
 
65
 
 
66
  /*! \brief Finds the test with the specified name and its parents test.
 
67
   * \param testName Name of the test to find.
 
68
   * \param testPath If the test is found, then all the tests traversed to access
 
69
   *                 \a test are added to \a testPath, including \c this and \a test.
 
70
   * \return \c true if a test with the specified name is found, \c false otherwise.
 
71
   */
 
72
  virtual bool findTestPath( const std::string &testName,
 
73
                             TestPath &testPath ) const;
 
74
 
 
75
  /*! \brief Finds the specified test and its parents test.
 
76
   * \param test Test to find.
 
77
   * \param testPath If the test is found, then all the tests traversed to access
 
78
   *                 \a test are added to \a testPath, including \c this and \a test.
 
79
   * \return \c true if the specified test is found, \c false otherwise.
 
80
   */
 
81
  virtual bool findTestPath( const Test *test,
 
82
                             TestPath &testPath ) const;
 
83
 
 
84
  /*! \brief Finds the test with the specified name in the hierarchy.
 
85
   * \param testName Name of the test to find.
 
86
   * \return Pointer on the first test found that is named \a testName. Never \c NULL.
 
87
   * \exception std::invalid_argument if no test named \a testName is found.
 
88
   */
 
89
  virtual Test *findTest( const std::string &testName ) const;
 
90
 
 
91
  /*! \brief Resolved the specified test path with this test acting as 'root'.
 
92
   * \param testPath Test path string to resolve.
 
93
   * \return Resolved TestPath. 
 
94
   * \exception std::invalid_argument if \a testPath could not be resolved.
 
95
   * \see TestPath.
 
96
   */
 
97
  virtual TestPath resolveTestPath( const std::string &testPath ) const;
 
98
 
 
99
protected:
 
100
  /*! Throws an exception if the specified index is invalid.
 
101
   * \param index Zero base index of a child test.
 
102
   * \exception std::out_of_range is \a index is < 0 or >= getChildTestCount().
 
103
   */
 
104
  virtual void checkIsValidIndex( int index ) const;
 
105
 
 
106
  /*! \brief Returns the child test of the specified valid index.
 
107
   * \param index Zero based valid index of the child test to return.
 
108
   * \return Pointer on the test. Never \c NULL.
 
109
   */
 
110
  virtual Test *doGetChildTestAt( int index ) const =0;
 
111
};
 
112
 
 
113
 
 
114
CPPUNIT_NS_END
 
115
 
 
116
#endif // CPPUNIT_TEST_H
 
117