| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: tests/misc/module.cpp
- // Purpose: Test wxModule
- // Author: Francesco Montorsi (extracted from console sample)
- // Created: 2010-06-02
- // Copyright: (c) 2010 wxWidgets team
- ///////////////////////////////////////////////////////////////////////////////
- // ----------------------------------------------------------------------------
- // headers
- // ----------------------------------------------------------------------------
- #include "testprec.h"
- #ifdef __BORLANDC__
- # pragma hdrstop
- #endif
- #include "wx/module.h"
- #include "wx/wxcrt.h" // for wxStrcat()
- // ----------------------------------------------------------------------------
- // test classes derived from wxModule
- // ----------------------------------------------------------------------------
- char g_strLoadOrder[256] = "\0";
- class Module : public wxModule
- {
- protected:
- virtual bool OnInit() { wxStrcat(g_strLoadOrder, GetClassInfo()->GetClassName()); return true; }
- virtual void OnExit() { }
- };
- class ModuleA : public Module
- {
- public:
- ModuleA();
- private:
- DECLARE_DYNAMIC_CLASS(ModuleA)
- };
- class ModuleB : public Module
- {
- public:
- ModuleB();
- private:
- DECLARE_DYNAMIC_CLASS(ModuleB)
- };
- class ModuleC : public Module
- {
- public:
- ModuleC();
- private:
- DECLARE_DYNAMIC_CLASS(ModuleC)
- };
- class ModuleD : public Module
- {
- public:
- ModuleD();
- private:
- DECLARE_DYNAMIC_CLASS(ModuleD)
- };
- IMPLEMENT_DYNAMIC_CLASS(ModuleA, wxModule)
- ModuleA::ModuleA()
- {
- AddDependency(CLASSINFO(ModuleB));
- AddDependency(CLASSINFO(ModuleD));
- }
- IMPLEMENT_DYNAMIC_CLASS(ModuleB, wxModule)
- ModuleB::ModuleB()
- {
- AddDependency(CLASSINFO(ModuleC));
- AddDependency(CLASSINFO(ModuleD));
- }
- IMPLEMENT_DYNAMIC_CLASS(ModuleC, wxModule)
- ModuleC::ModuleC()
- {
- AddDependency(CLASSINFO(ModuleD));
- }
- IMPLEMENT_DYNAMIC_CLASS(ModuleD, wxModule)
- ModuleD::ModuleD()
- {
- }
- // ----------------------------------------------------------------------------
- // test class
- // ----------------------------------------------------------------------------
- class ModuleTestCase : public CppUnit::TestCase
- {
- public:
- ModuleTestCase() { }
- private:
- CPPUNIT_TEST_SUITE( ModuleTestCase );
- CPPUNIT_TEST( LoadOrder );
- CPPUNIT_TEST_SUITE_END();
- void LoadOrder();
- DECLARE_NO_COPY_CLASS(ModuleTestCase)
- };
- // register in the unnamed registry so that these tests are run by default
- CPPUNIT_TEST_SUITE_REGISTRATION( ModuleTestCase );
- // also include in its own registry so that these tests can be run alone
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ModuleTestCase, "ModuleTestCase" );
- void ModuleTestCase::LoadOrder()
- {
- // module D is the only one with no dependencies and so should load as first (and so on):
- CPPUNIT_ASSERT_EQUAL( "ModuleDModuleCModuleBModuleA", g_strLoadOrder );
- }
|