root/headers/tools/cppunit/TestApp.h
// TestApp.h

#ifndef _beos_test_app_h_
#define _beos_test_app_h_

#include <Application.h>
#include <List.h>
#include <MessageQueue.h>

#include <cppunit/Portability.h>

// TestHandler

class BTestHandler : public BHandler {
public:
        virtual void MessageReceived(BMessage *message);
        BMessageQueue &Queue();

private:
        BMessageQueue   fQueue;
};


// TestApp

class CPPUNIT_API BTestApp : public BApplication {
public:
        BTestApp(const char *signature);
        virtual ~BTestApp();

        status_t Init();
        void Terminate();

        virtual void ReadyToRun();

        BTestHandler *CreateTestHandler();
        bool DeleteTestHandler(BTestHandler *handler);

        BTestHandler &Handler();
        BTestHandler *TestHandlerAt(int32 index);

private:
        static int32 _AppThreadStart(void *data);

private:
        thread_id               fAppThread;
        BList                   fHandlers;
};

#endif  // _beos_test_app_h_