1//
2// MuleUnit: A minimalistic C++ Unit testing framework based on EasyUnit.
3//
4// Copyright (c) 2005-2011 aMule Team ( admin@amule.org / http://www.amule.org )
5// Copyright (c) 2004-2011 Barthelemy Dagenais ( barthelemy@prologique.com )
6//
7// This library is free software; you can redistribute it and/or
8// modify it under the terms of the GNU Lesser General Public
9// License as published by the Free Software Foundation; either
10// version 2.1 of the License, or (at your option) any later version.
11//
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15// Lesser General Public License for more details.
16//
17// You should have received a copy of the GNU Lesser General Public
18// License along with this library; if not, write to the Free Software
19// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
20//
21
22#include <wx/wx.h>
23#include "testregistry.h"
24#include "test.h"
25#include <common/MuleDebug.h>
26
27using namespace muleunit;
28
29wxString GetFullMuleVersion()
30{
31	return wxT("UnitTest");
32}
33
34
35unsigned s_disableAssertions = 0;
36
37
38class UnitTestApp : public wxAppConsole
39{
40public:
41	int OnRun() {
42		return (TestRegistry::runAndPrint() ? 0 : 1);
43	}
44
45	void OnAssertFailure(const wxChar* file, int line,  const wxChar* func, const wxChar* cond, const wxChar* msg)
46	{
47		if (s_disableAssertions) {
48			return;
49		}
50
51		wxString desc;
52		if (cond && msg) {
53			desc << cond << wxT(" -- ") << msg;
54		} else if (cond) {
55			desc << wxT("Assertion: ") << cond;
56		} else {
57			desc << msg;
58		}
59
60		throw CAssertFailureException(desc, file, line);
61	}
62
63#ifndef __WXMSW__
64	void OnUnhandledException() {
65		::OnUnhandledException();
66	}
67#endif
68
69};
70
71
72IMPLEMENT_APP_CONSOLE(UnitTestApp);
73