#include <stdio.h>
#include <Application.h>
#include <Handler.h>
#include <Looper.h>
#include <Message.h>
#include <MessageRunner.h>
#include <Messenger.h>
#include <OS.h>
#include <TestShell.h>
#include <TestUtils.h>
#include <cppunit/TestAssert.h>
#include "MessageRunnerTestHelpers.h"
#include "GetInfoTester.h"
#ifndef TEST_R5
static const char *kTesterSignature
= "application/x-vnd.obos-messagerunner-getinfo-test";
#endif
static const bigtime_t kMinTimeInterval = 50000;
void GetInfoTester::GetInfo1()
{
#ifndef TEST_R5
MessageRunnerTestApp app(kTesterSignature);
BMessenger target;
BMessage message(MSG_RUNNER_MESSAGE);
bigtime_t interval = 100000;
int32 count = 5;
BMessageRunner runner(target, &message, interval, count);
CHK(runner.InitCheck() == B_OK);
bigtime_t readInterval = 0;
int32 readCount = 0;
CHK(runner.GetInfo(&readInterval, NULL) == B_OK);
CHK(readInterval == interval);
CHK(runner.GetInfo(NULL, &readCount) == B_OK);
CHK(readCount == count);
CHK(runner.GetInfo(NULL, NULL) == B_OK);
#endif
}
void GetInfoTester::GetInfo2()
{
#ifndef TEST_R5
MessageRunnerTestApp app(kTesterSignature);
BMessenger target;
BMessage message(MSG_RUNNER_MESSAGE);
bigtime_t interval = 100000;
int32 count = 0;
BMessageRunner runner(target, &message, interval, count);
CHK(runner.InitCheck() == B_ERROR);
bigtime_t readInterval = 0;
int32 readCount = 0;
CHK(runner.GetInfo(&readInterval, NULL) == B_BAD_VALUE);
CHK(runner.GetInfo(NULL, &readCount) == B_BAD_VALUE);
CHK(runner.GetInfo(NULL, NULL) == B_BAD_VALUE);
#endif
}
Test* GetInfoTester::Suite()
{
TestSuite* SuiteOfTests = new TestSuite;
ADD_TEST4(BMessageRunner, SuiteOfTests, GetInfoTester, GetInfo1);
ADD_TEST4(BMessageRunner, SuiteOfTests, GetInfoTester, GetInfo2);
return SuiteOfTests;
}