$Id: MessageQueueTestCase.h 383 2002-07-22 09:28:00Z tylerdauwalder $
This file defines a set of classes for testing BMessageQueue
functionality.
*/
#ifndef MessageQueueTestCase_H
#define MessageQueueTestCase_H
#include <List.h>
#include <Locker.h>
#include <Message.h>
#include <MessageQueue.h>
#include "ThreadedTestCase.h"
class SafetyLock {
private:
BMessageQueue *theMessageQueue;
public:
SafetyLock(BMessageQueue *aMessageQueue) {theMessageQueue = aMessageQueue;}
virtual ~SafetyLock() {if (theMessageQueue != NULL) theMessageQueue->Unlock(); };
};
class testMessageClass : public BMessage
{
public:
static int messageDestructorCount;
virtual ~testMessageClass() { messageDestructorCount++; };
testMessageClass(int what) : BMessage(what) { };
};
class MessageQueueTestCase : public BThreadedTestCase {
private:
BList messageList;
protected:
BMessageQueue *theMessageQueue;
void AddMessage(BMessage *message);
void RemoveMessage(BMessage *message);
BMessage *NextMessage(void);
BMessage *FindMessage(uint32 what, int index);
void CheckQueueAgainstList(void);
public:
MessageQueueTestCase(std::string);
virtual ~MessageQueueTestCase();
};
#endif