From 7b6d9bd404c26566acb6ab17f3d343f205b0b3b0 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Fri, 24 Oct 2025 11:47:28 +0300 Subject: [PATCH] Try to fix failing tests in some configurations --- test/bonus/BonusSystemTest.cpp | 2 ++ test/events/ApplyDamageTest.cpp | 10 +++++--- test/events/EventBusTest.cpp | 44 +++++++++++++++++---------------- 3 files changed, 31 insertions(+), 25 deletions(-) diff --git a/test/bonus/BonusSystemTest.cpp b/test/bonus/BonusSystemTest.cpp index b6d19cd3b..8468763cf 100644 --- a/test/bonus/BonusSystemTest.cpp +++ b/test/bonus/BonusSystemTest.cpp @@ -299,6 +299,8 @@ TEST_F(BonusSystemTest, legionPieces) heroAine.detachFrom(townAndVisitor); EXPECT_EQ(town.valOfBonuses(BonusType::CREATURE_GROWTH, BonusCustomSubtype::creatureLevel(3)), 0); + + heroAine.detachFromSource(legion); } } diff --git a/test/events/ApplyDamageTest.cpp b/test/events/ApplyDamageTest.cpp index b396ccd44..1773133ee 100644 --- a/test/events/ApplyDamageTest.cpp +++ b/test/events/ApplyDamageTest.cpp @@ -22,9 +22,11 @@ namespace test using namespace ::testing; using namespace ::events; -class ListenerMock +class ApplyDamageListenerMock { public: + virtual ~ApplyDamageListenerMock() = default; + MOCK_METHOD1(beforeEvent, void(ApplyDamage &)); MOCK_METHOD1(afterEvent, void(const ApplyDamage &)); }; @@ -33,7 +35,7 @@ class ApplyDamageTest : public Test { public: EventBus eventBus; - ListenerMock listener; + ApplyDamageListenerMock listener; StrictMock environmentMock; std::shared_ptr> targetMock; @@ -47,8 +49,8 @@ protected: //this should be the only subscription test for events, just in case cross-binary subscription breaks TEST_F(ApplyDamageTest, Subscription) { - auto subscription1 = eventBus.subscribeBefore(std::bind(&ListenerMock::beforeEvent, &listener, _1)); - auto subscription2 = eventBus.subscribeAfter(std::bind(&ListenerMock::afterEvent, &listener, _1)); + auto subscription1 = eventBus.subscribeBefore(std::bind(&ApplyDamageListenerMock::beforeEvent, &listener, _1)); + auto subscription2 = eventBus.subscribeAfter(std::bind(&ApplyDamageListenerMock::afterEvent, &listener, _1)); EXPECT_CALL(listener, beforeEvent(_)).Times(1); EXPECT_CALL(listener, afterEvent(_)).Times(1); diff --git a/test/events/EventBusTest.cpp b/test/events/EventBusTest.cpp index 150731960..f8c225be1 100644 --- a/test/events/EventBusTest.cpp +++ b/test/events/EventBusTest.cpp @@ -35,9 +35,11 @@ public: friend class SubscriptionRegistry; }; -class ListenerMock +class EventBusListenerMock { public: + virtual ~EventBusListenerMock() = default; + MOCK_METHOD1(beforeEvent, void(EventExample &)); MOCK_METHOD1(onEvent, void(EventExample &)); MOCK_METHOD1(afterEvent, void(const EventExample &)); @@ -51,9 +53,9 @@ public: EventBus subject1; EventBus subject2; - StrictMock listener; - StrictMock listener1; - StrictMock listener2; + StrictMock listener; + StrictMock listener1; + StrictMock listener2; }; TEST_F(EventBusTest, ExecuteNoListeners) @@ -67,15 +69,15 @@ TEST_F(EventBusTest, ExecuteNoListenersWithHandler) EXPECT_CALL(event1, isEnabled()).WillRepeatedly(Return(true)); EXPECT_CALL(listener, onEvent(Ref(event1))).Times(1); - subject1.executeEvent(event1, std::bind(&ListenerMock::onEvent, &listener, _1)); + subject1.executeEvent(event1, std::bind(&EventBusListenerMock::onEvent, &listener, _1)); } TEST_F(EventBusTest, ExecuteIgnoredSubscription) { EXPECT_CALL(event1, isEnabled()).WillRepeatedly(Return(true)); - subject1.subscribeBefore(std::bind(&ListenerMock::beforeEvent, &listener, _1)); - subject1.subscribeAfter(std::bind(&ListenerMock::afterEvent, &listener, _1)); + subject1.subscribeBefore(std::bind(&EventBusListenerMock::beforeEvent, &listener, _1)); + subject1.subscribeAfter(std::bind(&EventBusListenerMock::afterEvent, &listener, _1)); EXPECT_CALL(listener, beforeEvent(_)).Times(0); EXPECT_CALL(listener, afterEvent(_)).Times(0); @@ -87,10 +89,10 @@ TEST_F(EventBusTest, ExecuteSequence) { EXPECT_CALL(event1, isEnabled()).WillRepeatedly(Return(true)); - auto subscription1 = subject1.subscribeBefore(std::bind(&ListenerMock::beforeEvent, &listener1, _1)); - auto subscription2 = subject1.subscribeAfter(std::bind(&ListenerMock::afterEvent, &listener1, _1)); - auto subscription3 = subject1.subscribeBefore(std::bind(&ListenerMock::beforeEvent, &listener2, _1)); - auto subscription4 = subject1.subscribeAfter(std::bind(&ListenerMock::afterEvent, &listener2, _1)); + auto subscription1 = subject1.subscribeBefore(std::bind(&EventBusListenerMock::beforeEvent, &listener1, _1)); + auto subscription2 = subject1.subscribeAfter(std::bind(&EventBusListenerMock::afterEvent, &listener1, _1)); + auto subscription3 = subject1.subscribeBefore(std::bind(&EventBusListenerMock::beforeEvent, &listener2, _1)); + auto subscription4 = subject1.subscribeAfter(std::bind(&EventBusListenerMock::afterEvent, &listener2, _1)); { InSequence sequence; @@ -101,17 +103,17 @@ TEST_F(EventBusTest, ExecuteSequence) EXPECT_CALL(listener2, afterEvent(Ref(event1))).Times(1); } - subject1.executeEvent(event1, std::bind(&ListenerMock::onEvent, &listener, _1)); + subject1.executeEvent(event1, std::bind(&EventBusListenerMock::onEvent, &listener, _1)); } TEST_F(EventBusTest, BusesAreIndependent) { EXPECT_CALL(event1, isEnabled()).WillRepeatedly(Return(true)); - auto subscription1 = subject1.subscribeBefore(std::bind(&ListenerMock::beforeEvent, &listener1, _1)); - auto subscription2 = subject1.subscribeAfter(std::bind(&ListenerMock::afterEvent, &listener1, _1)); - auto subscription3 = subject2.subscribeBefore(std::bind(&ListenerMock::beforeEvent, &listener2, _1)); - auto subscription4 = subject2.subscribeAfter(std::bind(&ListenerMock::afterEvent, &listener2, _1)); + auto subscription1 = subject1.subscribeBefore(std::bind(&EventBusListenerMock::beforeEvent, &listener1, _1)); + auto subscription2 = subject1.subscribeAfter(std::bind(&EventBusListenerMock::afterEvent, &listener1, _1)); + auto subscription3 = subject2.subscribeBefore(std::bind(&EventBusListenerMock::beforeEvent, &listener2, _1)); + auto subscription4 = subject2.subscribeAfter(std::bind(&EventBusListenerMock::afterEvent, &listener2, _1)); EXPECT_CALL(listener1, beforeEvent(_)).Times(1); EXPECT_CALL(listener2, beforeEvent(_)).Times(0); @@ -125,7 +127,7 @@ TEST_F(EventBusTest, DisabledTestDontExecute) { EXPECT_CALL(event1, isEnabled()).Times(AtLeast(1)).WillRepeatedly(Return(false)); EXPECT_CALL(listener, onEvent(Ref(event1))).Times(0); - subject1.executeEvent(event1, std::bind(&ListenerMock::onEvent, &listener, _1)); + subject1.executeEvent(event1, std::bind(&EventBusListenerMock::onEvent, &listener, _1)); } TEST_F(EventBusTest, DisabledTestDontExecutePostHandler) @@ -134,10 +136,10 @@ TEST_F(EventBusTest, DisabledTestDontExecutePostHandler) EXPECT_CALL(listener, onEvent(Ref(event1))).WillRepeatedly(Return()); EXPECT_CALL(listener1, afterEvent(Ref(event1))).Times(0); - auto subscription1 = subject1.subscribeAfter(std::bind(&ListenerMock::afterEvent, &listener1, _1)); + auto subscription1 = subject1.subscribeAfter(std::bind(&EventBusListenerMock::afterEvent, &listener1, _1)); - subject1.executeEvent(event1, std::bind(&ListenerMock::onEvent, &listener, _1)); + subject1.executeEvent(event1, std::bind(&EventBusListenerMock::onEvent, &listener, _1)); } TEST_F(EventBusTest, DisabledTestExecutePreHandler) @@ -146,9 +148,9 @@ TEST_F(EventBusTest, DisabledTestExecutePreHandler) EXPECT_CALL(listener, onEvent(Ref(event1))).WillRepeatedly(Return()); EXPECT_CALL(listener1, beforeEvent(Ref(event1))).Times(1); - auto subscription1 = subject1.subscribeBefore(std::bind(&ListenerMock::beforeEvent, &listener1, _1)); + auto subscription1 = subject1.subscribeBefore(std::bind(&EventBusListenerMock::beforeEvent, &listener1, _1)); - subject1.executeEvent(event1, std::bind(&ListenerMock::onEvent, &listener, _1)); + subject1.executeEvent(event1, std::bind(&EventBusListenerMock::onEvent, &listener, _1)); }