home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 Mobile / Chip_Mobile_2001.iso / palm / business / printcar / printcar.exe / tests / DB / ResourceDatabaseTest.cc < prev   
C/C++ Source or Header  |  2000-06-04  |  3KB  |  112 lines

  1. //
  2. //  $Id: ResourceDatabaseTest.cc,v 1.1 2000/06/04 00:51:22 sergey Exp $
  3. //
  4.  
  5. #include <Pilot.h>
  6. #include <stdio.h>
  7. #include "../Test.h"
  8. #include "DB/ResourceDatabase.h"
  9. #include "DB/GenericRecord.h"
  10. #include "DB/RecordType.h"
  11. #include "Util/Error.h"
  12.  
  13.  
  14. namespace DB
  15. {
  16.     class NullErrorHandler: public Util::ErrorHandler
  17.     {
  18.     public:
  19.         virtual void reportError(bool fatal, const char* message) {}
  20.     };
  21.  
  22.     //--------------------------------------------------------------------------
  23.  
  24.     class ResourceDatabaseTest: public Test
  25.     {
  26.     public:
  27.         virtual const char* name() const { return "ResourceDatabaseTest"; }
  28.  
  29.         virtual void runTest()
  30.         {
  31.             NullErrorHandler nullErrorHandler;
  32.             Util::ErrorHandler& oldErrorHandler = Util::Error::errorHandler();
  33.             Util::Error::setErrorHandler(nullErrorHandler);
  34.  
  35.             testResDatabase();
  36.             testResDatabaseRecord();
  37.             testResDatabaseRecordType();
  38.  
  39.             Util::Error::setErrorHandler(oldErrorHandler);
  40.         }
  41.  
  42.         void testResDatabase()
  43.         {
  44.             ResourceDatabase db;
  45.             testAssert(db.open(0, "TestResDB", dmModeReadOnly));
  46.             testAssert(db.resourceCount() == 3);
  47.  
  48.             testAssert(db.findResource(strRsc, 1000) == 1);
  49.             testAssert(db.findResource(strRsc, 1001) == 2);
  50.             testAssert(db.findResource(bitmapRsc, 1002) == 0);
  51.  
  52.             testAssert(db.findResource(strRsc, 1002) == -1);
  53.             testAssert(db.findResource(bitmapRsc, 1001) == -1);
  54.  
  55.         }
  56.  
  57.         void testResDatabaseRecord()
  58.         {
  59.             ResourceDatabase db;
  60.             testAssert(db.open(0, "TestResDB", dmModeReadOnly));
  61.  
  62.             //***
  63.  
  64.             GenericRecord rec1;
  65.             testAssert(!db.readResource(-1, rec1));
  66.  
  67.             testAssert(db.readResource(0, rec1));
  68.             testAssert(rec1.data() != 0 && rec1.size() > 0 && rec1.index() == 0);
  69.  
  70.             //***
  71.  
  72.             GenericRecord rec2;
  73.             testAssert(!db.readResource(strRsc, 1002, rec2));
  74.  
  75.             testAssert(db.readResource(bitmapRsc, 1002, rec2));
  76.             testAssert(rec1.data() == rec2.data());
  77.             testAssert(rec1.size() == rec2.size());
  78.             testAssert(rec1.index() == rec2.index());
  79.         }
  80.  
  81.         void testResDatabaseRecordType()
  82.         {
  83.             ResourceDatabase db;
  84.             testAssert(db.open(0, "TestResDB", dmModeReadOnly));
  85.  
  86.             //***
  87.  
  88.             RecordType<const char*> rec1;
  89.             testAssert(db.readResource(strRsc, 1000, rec1));
  90.             testAssert(StrCompare(rec1.data(), "Name") == 0);
  91.  
  92.             //***
  93.  
  94.             RecordType<const char*> rec2;
  95.             testAssert(db.readResource(strRsc, 1001, rec2));
  96.             testAssert(StrCompare(rec2.data(), "Description") == 0);
  97.  
  98.             //***
  99.  
  100.             RecordType<BitmapPtr> rec3;
  101.             testAssert(db.readResource(bitmapRsc, 1002, rec3));
  102.             testAssert(rec3.data() != 0);
  103.         }
  104.     };
  105. }
  106.  
  107. Test& GetResourceDatabaseTest()
  108. {
  109.     static DB::ResourceDatabaseTest test;
  110.     return test;
  111. }
  112.