File: SignalsSlotsTest.cxx

package info (click to toggle)
clam 1.4.0-6
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 17,836 kB
  • ctags: 20,981
  • sloc: cpp: 92,504; python: 9,721; ansic: 1,602; xml: 444; sh: 239; makefile: 153; perl: 54; asm: 15
file content (77 lines) | stat: -rw-r--r-- 1,188 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

#include <cppunit/extensions/HelperMacros.h>
#include "BaseLoggable.hxx" // also includes <sstream>
#include <string>
#include "Signalv1.hxx"
#include "Slotv1.hxx"


class A
{
public:
	SigSlot::Signalv1< const std::string & > SignalSendB;
	SigSlot::Slotv1< const std::string & > SlotReceiveA;

	void ReceiveA( const std::string & )
	{
	}

	A()
	{
		SlotReceiveA.Wrap( this, &A::ReceiveA ); 
	}
		
	};

class B
{
public:
	SigSlot::Signalv1< const std::string & > SignalSendA;
	SigSlot::Slotv1< const std::string & > SlotReceiveB;

	void ReceiveB( const std::string & ) 
	{
	}

	B()
	{
		SlotReceiveB.Wrap( this, &B::ReceiveB ); 
	}
		
	void Attach( A & a )
	{
		SignalSendA.Connect( a.SlotReceiveA );
		a.SignalSendB.Connect( SlotReceiveB );
	}
};

namespace CLAMTest 
{

class SignalsSlotsTest;
CPPUNIT_TEST_SUITE_REGISTRATION( SignalsSlotsTest );


class SignalsSlotsTest : public CppUnit::TestFixture
{
	CPPUNIT_TEST_SUITE( SignalsSlotsTest );
	
	CPPUNIT_TEST( testDoubleConnection );
	
	CPPUNIT_TEST_SUITE_END();

	void testDoubleConnection()
	{
		A * a = new A;
		B * b = new B;
		
		b->Attach( *a );

		delete b;
		delete a;
//		CPPUNIT_FAIL("oho");
	}
};

} // namespace CLAMTest