1 //------------------------------------------------------------------------------ 2 // HandlerAtTest.cpp 3 // 4 //------------------------------------------------------------------------------ 5 6 // Standard Includes ----------------------------------------------------------- 7 8 // System Includes ------------------------------------------------------------- 9 #include <Handler.h> 10 #include <Looper.h> 11 12 // Project Includes ------------------------------------------------------------ 13 14 // Local Includes -------------------------------------------------------------- 15 #include "HandlerAtTest.h" 16 17 // Local Defines --------------------------------------------------------------- 18 19 // Globals --------------------------------------------------------------------- 20 21 //------------------------------------------------------------------------------ 22 /** 23 HandlerAt(int32 index) 24 @case No handlers added, check for looper itself 25 @param index 0 26 @results HandlerAt() returns pointer to Looper. 27 */ 28 void THandlerAtTest::HandlerAtTest1() 29 { 30 BLooper Looper; 31 CPPUNIT_ASSERT(Looper.HandlerAt(0) == &Looper); 32 } 33 //------------------------------------------------------------------------------ 34 /** 35 HandlerAt(int32 index) 36 @case Index out of range (CountHandlers() + 1) 37 @param index 1 & -1 38 @results HandlerAt() returns NULL 39 */ 40 void THandlerAtTest::HandlerAtTest2() 41 { 42 BLooper Looper; 43 CPPUNIT_ASSERT(Looper.HandlerAt(1) == NULL); 44 CPPUNIT_ASSERT(Looper.HandlerAt(-1) == NULL); 45 } 46 //------------------------------------------------------------------------------ 47 /** 48 HandlerAt(int32 index) 49 @case Several handlers added, checked against expected indices 50 @param index Various 51 @results 52 */ 53 #define CREATE_AND_ADD(XHANDLER) \ 54 BHandler XHANDLER; \ 55 Looper.AddHandler(&XHANDLER); 56 void THandlerAtTest::HandlerAtTest3() 57 { 58 BLooper Looper; 59 CREATE_AND_ADD(Handler1); 60 CREATE_AND_ADD(Handler2); 61 CREATE_AND_ADD(Handler3); 62 63 CPPUNIT_ASSERT(Looper.HandlerAt(0) == &Looper); 64 CPPUNIT_ASSERT(Looper.HandlerAt(1) == &Handler1); 65 CPPUNIT_ASSERT(Looper.HandlerAt(2) == &Handler2); 66 CPPUNIT_ASSERT(Looper.HandlerAt(3) == &Handler3); 67 } 68 //------------------------------------------------------------------------------ 69 /** 70 HandlerAt(int32 index) 71 @case Looper is not locked 72 @param index 0 73 @results 74 */ 75 void THandlerAtTest::HandlerAtTest4() 76 { 77 DEBUGGER_ESCAPE; 78 79 BLooper Looper; 80 Looper.Unlock(); 81 CPPUNIT_ASSERT(Looper.HandlerAt(0) == &Looper); 82 } 83 //------------------------------------------------------------------------------ 84 TestSuite* THandlerAtTest::Suite() 85 { 86 TestSuite* suite = new TestSuite("BLooper::HandlerAt(int32)"); 87 88 ADD_TEST4(BLooper, suite, THandlerAtTest, HandlerAtTest1); 89 ADD_TEST4(BLooper, suite, THandlerAtTest, HandlerAtTest2); 90 ADD_TEST4(BLooper, suite, THandlerAtTest, HandlerAtTest3); 91 ADD_TEST4(BLooper, suite, THandlerAtTest, HandlerAtTest4); 92 93 return suite; 94 } 95 //------------------------------------------------------------------------------ 96 97 /* 98 * $Log $ 99 * 100 * $Id $ 101 * 102 */ 103 104 105