#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