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 */
28class 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
48void 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 */
68void 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//------------------------------------------------------------------------------
82TestSuite* 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