home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 Mobile
/
Chip_Mobile_2001.iso
/
palm
/
business
/
printcar
/
printcar.exe
/
tests
/
DB
/
ResourceDatabaseTest.cc
< prev
Wrap
C/C++ Source or Header
|
2000-06-04
|
3KB
|
112 lines
//
// $Id: ResourceDatabaseTest.cc,v 1.1 2000/06/04 00:51:22 sergey Exp $
//
#include <Pilot.h>
#include <stdio.h>
#include "../Test.h"
#include "DB/ResourceDatabase.h"
#include "DB/GenericRecord.h"
#include "DB/RecordType.h"
#include "Util/Error.h"
namespace DB
{
class NullErrorHandler: public Util::ErrorHandler
{
public:
virtual void reportError(bool fatal, const char* message) {}
};
//--------------------------------------------------------------------------
class ResourceDatabaseTest: public Test
{
public:
virtual const char* name() const { return "ResourceDatabaseTest"; }
virtual void runTest()
{
NullErrorHandler nullErrorHandler;
Util::ErrorHandler& oldErrorHandler = Util::Error::errorHandler();
Util::Error::setErrorHandler(nullErrorHandler);
testResDatabase();
testResDatabaseRecord();
testResDatabaseRecordType();
Util::Error::setErrorHandler(oldErrorHandler);
}
void testResDatabase()
{
ResourceDatabase db;
testAssert(db.open(0, "TestResDB", dmModeReadOnly));
testAssert(db.resourceCount() == 3);
testAssert(db.findResource(strRsc, 1000) == 1);
testAssert(db.findResource(strRsc, 1001) == 2);
testAssert(db.findResource(bitmapRsc, 1002) == 0);
testAssert(db.findResource(strRsc, 1002) == -1);
testAssert(db.findResource(bitmapRsc, 1001) == -1);
}
void testResDatabaseRecord()
{
ResourceDatabase db;
testAssert(db.open(0, "TestResDB", dmModeReadOnly));
//***
GenericRecord rec1;
testAssert(!db.readResource(-1, rec1));
testAssert(db.readResource(0, rec1));
testAssert(rec1.data() != 0 && rec1.size() > 0 && rec1.index() == 0);
//***
GenericRecord rec2;
testAssert(!db.readResource(strRsc, 1002, rec2));
testAssert(db.readResource(bitmapRsc, 1002, rec2));
testAssert(rec1.data() == rec2.data());
testAssert(rec1.size() == rec2.size());
testAssert(rec1.index() == rec2.index());
}
void testResDatabaseRecordType()
{
ResourceDatabase db;
testAssert(db.open(0, "TestResDB", dmModeReadOnly));
//***
RecordType<const char*> rec1;
testAssert(db.readResource(strRsc, 1000, rec1));
testAssert(StrCompare(rec1.data(), "Name") == 0);
//***
RecordType<const char*> rec2;
testAssert(db.readResource(strRsc, 1001, rec2));
testAssert(StrCompare(rec2.data(), "Description") == 0);
//***
RecordType<BitmapPtr> rec3;
testAssert(db.readResource(bitmapRsc, 1002, rec3));
testAssert(rec3.data() != 0);
}
};
}
Test& GetResourceDatabaseTest()
{
static DB::ResourceDatabaseTest test;
return test;
}