Add caf::Signal::observerCount() and unit test for it

This commit is contained in:
Gaute Lindkvist
2020-07-01 15:46:48 +02:00
parent dd2917e4af
commit f202f4b8a7
2 changed files with 16 additions and 0 deletions

View File

@@ -134,3 +134,18 @@ TEST( SignalTest, MessageTest )
emitter.setSimpleStruct( testStruct );
ASSERT_EQ( testStruct, observer.structValue() );
}
TEST( SignalTest, ObserverDeletion )
{
TestEmitter emitter;
ASSERT_EQ( (size_t)0, emitter.basicSignal.observerCount() );
{
TestObserver observer;
observer.connectAllSignals( &emitter );
ASSERT_EQ( (size_t)1, emitter.basicSignal.observerCount() );
emitter.triggerBasicSignal();
ASSERT_EQ( true, observer.receivedBasicSignal() );
}
ASSERT_EQ( (size_t)0, emitter.basicSignal.observerCount() );
emitter.triggerBasicSignal();
}

View File

@@ -181,6 +181,7 @@ public:
CAF_ASSERT( it != m_observerCallbacks.end() );
it->second.second = true;
}
size_t observerCount() const { return m_observerCallbacks.size(); }
private:
Signal( const Signal& rhs ) = default;