1 //------------------------------------------------------------------------------ 2 // MessageDestructTest.cpp 3 // 4 //------------------------------------------------------------------------------ 5 6 // Standard Includes ----------------------------------------------------------- 7 8 // System Includes ------------------------------------------------------------- 9 #include <Looper.h> 10 #include <Message.h> 11 #include <Messenger.h> 12 13 // Project Includes ------------------------------------------------------------ 14 15 // Local Includes -------------------------------------------------------------- 16 #include "MessageDestructTest.h" 17 18 // Local Defines --------------------------------------------------------------- 19 20 // Globals --------------------------------------------------------------------- 21 22 //------------------------------------------------------------------------------ 23 /** 24 ~BMessage 25 @case no reply to sent message 26 @results B_NO_REPLY reply is received 27 */ 28 class Looper1 : public BLooper 29 { 30 public: 31 Looper1(const char* name) : BLooper(name) {;} 32 33 void MessageReceived(BMessage* msg) 34 { 35 switch (msg->what) 36 { 37 case '1234': 38 break; 39 case '2345': 40 msg->SendReply('3456'); 41 break; 42 default: 43 BLooper::MessageReceived(msg); 44 } 45 } 46 }; 47 48 void TMessageDestructTest::MessageDestructTest1() 49 { 50 BLooper* looper1 = new Looper1("looper1"); 51 52 looper1->Run(); 53 54 BMessenger msgr(NULL, looper1); 55 BMessage reply; 56 CPPUNIT_ASSERT(msgr.SendMessage('1234', &reply) == B_OK); 57 CPPUNIT_ASSERT(reply.what == B_NO_REPLY); 58 59 looper1->Lock(); 60 looper1->Quit(); 61 } 62 //------------------------------------------------------------------------------ 63 /** 64 ~BMessage 65 @case Reply is sent to message 66 @result No B_NO_REPLY reply is sent 67 */ 68 void TMessageDestructTest::MessageDestructTest2() 69 { 70 BLooper* looper1 = new Looper1("looper1"); 71 looper1->Run(); 72 73 BMessenger msgr(NULL, looper1); 74 BMessage reply; 75 CPPUNIT_ASSERT(msgr.SendMessage('2345', &reply) == B_OK); 76 CPPUNIT_ASSERT(reply.what == '3456'); 77 78 looper1->Lock(); 79 looper1->Quit(); 80 } 81 //------------------------------------------------------------------------------ 82 TestSuite* TMessageDestructTest::Suite() 83 { 84 TestSuite* suite = new TestSuite("BMessage::~BMessage()"); 85 86 ADD_TEST4(BMessage, suite, TMessageDestructTest, MessageDestructTest1); 87 ADD_TEST4(BMessage, suite, TMessageDestructTest, MessageDestructTest2); 88 89 return suite; 90 } 91 //------------------------------------------------------------------------------ 92 93 94 /* 95 * $Log $ 96 * 97 * $Id $ 98 * 99 */ 100 101