ReceptiveFeatureConditionTest.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. * ReceptiveFeatureConditionTest.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 ReceptiveFeatureConditionTest : public TargetConditionItemTest, public WithParamInterface<tuple<bool, bool> >
  17. {
  18. public:
  19. bool isPositive;
  20. bool hasBonus;
  21. void setDefaultExpectations()
  22. {
  23. isPositive = ::testing::get<0>(GetParam());
  24. hasBonus = ::testing::get<1>(GetParam());
  25. EXPECT_CALL(unitMock, getAllBonuses(_, _, _)).Times(AtLeast(0));
  26. EXPECT_CALL(unitMock, getTreeVersion()).Times(AtLeast(0));
  27. EXPECT_CALL(mechanicsMock, isPositiveSpell()).WillRepeatedly(Return(isPositive));
  28. if(hasBonus)
  29. unitBonuses.addNewBonus(std::make_shared<Bonus>(BonusDuration::ONE_BATTLE, BonusType::RECEPTIVE, BonusSource::OTHER, 0, BonusSourceID()));
  30. }
  31. protected:
  32. void SetUp() override
  33. {
  34. TargetConditionItemTest::SetUp();
  35. subject = TargetConditionItemFactory::getDefault()->createReceptiveFeature();
  36. GTEST_ASSERT_NE(subject, nullptr);
  37. }
  38. };
  39. TEST_P(ReceptiveFeatureConditionTest, isReceptive)
  40. {
  41. setDefaultExpectations();
  42. EXPECT_EQ(isPositive && hasBonus, subject->isReceptive(&mechanicsMock, &unitMock));
  43. }
  44. INSTANTIATE_TEST_SUITE_P
  45. (
  46. ByFlags,
  47. ReceptiveFeatureConditionTest,
  48. Combine
  49. (
  50. Values(false, true),
  51. Values(false, true)
  52. )
  53. );
  54. }