HealthValueConditionTest.cpp 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * HealthValueConditionTest.cpp, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #include "StdInc.h"
  11. #include "TargetConditionItemFixture.h"
  12. namespace test
  13. {
  14. using namespace ::spells;
  15. using namespace ::testing;
  16. class HealthValueConditionTest : public TargetConditionItemTest
  17. {
  18. public:
  19. const int64_t UNIT_HP = 4242;
  20. const int64_t EFFECT_VALUE = 101;
  21. void setDefaultExpectations()
  22. {
  23. EXPECT_CALL(unitMock, getAllBonuses(_, _)).Times(0);
  24. EXPECT_CALL(unitMock, getTreeVersion()).Times(0);
  25. EXPECT_CALL(unitMock, getAvailableHealth()).WillOnce(Return(UNIT_HP));
  26. EXPECT_CALL(mechanicsMock, getEffectValue()).WillOnce(Return(EFFECT_VALUE));
  27. }
  28. void SetUp() override
  29. {
  30. TargetConditionItemTest::SetUp();
  31. subject = TargetConditionItemFactory::getDefault()->createConfigurable("", "healthValueSpecial", "");
  32. GTEST_ASSERT_NE(subject, nullptr);
  33. }
  34. };
  35. TEST_F(HealthValueConditionTest, ReceptiveIfEq)
  36. {
  37. setDefaultExpectations();
  38. EXPECT_CALL(mechanicsMock, applySpellBonus(Eq(EFFECT_VALUE), Eq(&unitMock))).WillOnce(Return(UNIT_HP));
  39. EXPECT_TRUE(subject->isReceptive(&mechanicsMock, &unitMock));
  40. }
  41. TEST_F(HealthValueConditionTest, ReceptiveIfGt)
  42. {
  43. setDefaultExpectations();
  44. EXPECT_CALL(mechanicsMock, applySpellBonus(Eq(EFFECT_VALUE), Eq(&unitMock))).WillOnce(Return(UNIT_HP+1));
  45. EXPECT_TRUE(subject->isReceptive(&mechanicsMock, &unitMock));
  46. }
  47. TEST_F(HealthValueConditionTest, ImmuneIfLt)
  48. {
  49. setDefaultExpectations();
  50. EXPECT_CALL(mechanicsMock, applySpellBonus(Eq(EFFECT_VALUE), Eq(&unitMock))).WillOnce(Return(UNIT_HP-1));
  51. EXPECT_FALSE(subject->isReceptive(&mechanicsMock, &unitMock));
  52. }
  53. }