diff --git a/CMakePresets.json b/CMakePresets.json index c160e6ccc..489613626 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -462,19 +462,19 @@ "inherits": "default-release" }, { - "name": "windows-msvc-ninja-release", - "configurePreset": "windows-msvc-ninja-release", - "inherits": "default-release" + "name": "windows-msvc-ninja-release", + "configurePreset": "windows-msvc-ninja-release", + "inherits": "default-release" }, { - "name": "windows-msvc-ninja-release-x86", - "configurePreset": "windows-msvc-ninja-release-x86", - "inherits": "default-release" + "name": "windows-msvc-ninja-release-x86", + "configurePreset": "windows-msvc-ninja-release-x86", + "inherits": "default-release" }, { - "name": "windows-msvc-ninja-release-arm64", - "configurePreset": "windows-msvc-ninja-release-arm64", - "inherits": "default-release" + "name": "windows-msvc-ninja-release-arm64", + "configurePreset": "windows-msvc-ninja-release-arm64", + "inherits": "default-release" }, { "name": "ios-release-conan", @@ -518,9 +518,24 @@ } }, { - "name": "linux-clang-release", - "configurePreset": "linux-clang-release", - "inherits": "default-release" + "name": "linux-clang-debug", + "configurePreset": "linux-clang-debug", + "inherits": "default-release" + }, + { + "name": "linux-clang-release", + "configurePreset": "linux-clang-release", + "inherits": "default-release" + }, + { + "name": "linux-clang-test", + "configurePreset": "linux-clang-test", + "inherits": "default-release" + }, + { + "name": "linux-gcc-debug", + "configurePreset": "linux-gcc-debug", + "inherits": "default-release" }, { "name": "linux-gcc-release", @@ -528,25 +543,10 @@ "inherits": "default-release" }, { - "name": "linux-clang-debug", - "configurePreset": "linux-clang-test", - "inherits": "default-release" - }, - { - "name": "linux-gcc-debug", + "name": "linux-gcc-test", "configurePreset": "linux-gcc-test", "inherits": "default-release" }, - { - "name": "linux-gcc-test", - "configurePreset": "linux-gcc-test", - "inherits": "default-release" - }, - { - "name": "linux-clang-test", - "configurePreset": "linux-clang-test", - "inherits": "default-release" - }, { "name": "macos-xcode-release", "configurePreset": "macos-xcode-release", diff --git a/test/bonus/BonusSystemTest.cpp b/test/bonus/BonusSystemTest.cpp index ed327fffb..8468763cf 100644 --- a/test/bonus/BonusSystemTest.cpp +++ b/test/bonus/BonusSystemTest.cpp @@ -189,6 +189,8 @@ TEST_F(BonusSystemTest, battlewidePropagationToAll) EXPECT_TRUE(heroAine.hasBonusOfType(BonusType::BLOCK_ALL_MAGIC)); EXPECT_TRUE(heroBron.hasBonusOfType(BonusType::BLOCK_ALL_MAGIC)); + + heroAine.detachFromSource(orb); } TEST_F(BonusSystemTest, battlewidePropagationToEnemies) @@ -297,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)); }