/*
 * TestSuite.h
 *
 *  Created on: Nov 4, 2012
 *      Author: attero
 */

#ifndef TESTSUITE_H_
#define TESTSUITE_H_
#include <string>
#include "minunit.h"

#include <iostream>
/**
 * TestSuite is main part of test framework. It is a base class for all other
 * test suites such as TestParser suite and so on.
 *
 */
class TestSuite {
public:
	int tests_passed;
	int tests_failed;
	int tests;

	/**
	 * run_tests() is crucial method. It's really universal and very useful.
	 * It runs tests and gathers all data acquired during running tests and display them.
	 */
	void run_tests();
	/**
	 * all_tests() is a virtual method which is used in run_tests() function. It has to be overloaded in
	 * classes which inherits TestSuite.
	 */
	virtual std::string all_tests() = 0;

	TestSuite();
	virtual ~TestSuite();
};

#endif /* TESTSUITE_H_ */
