ERM_MF.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /*
  2. * ERM_MF.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 "../scripting/ScriptFixture.h"
  12. #include "../mock/mock_events_ApplyDamage.h"
  13. namespace test
  14. {
  15. namespace scripting
  16. {
  17. using namespace ::testing;
  18. using ::events::ApplyDamage;
  19. using ::events::ApplyDamageMock;
  20. class ERM_MF : public Test, public ScriptFixture
  21. {
  22. public:
  23. StrictMock<UnitMock> targetMock;
  24. ApplyDamageMock event;
  25. void setDefaultExpectations()
  26. {
  27. }
  28. protected:
  29. void SetUp() override
  30. {
  31. ScriptFixture::setUp();
  32. }
  33. };
  34. TEST_F(ERM_MF, ChangesDamage)
  35. {
  36. setDefaultExpectations();
  37. std::stringstream source;
  38. source << "VERM" << std::endl;
  39. source << "!?MF1;" << std::endl;
  40. source << "!!MF:D?y-1;" << std::endl;
  41. source << "!!VRy-1:+10;" << std::endl;
  42. source << "!!MF:Fy-1;" << std::endl;
  43. loadScript(VLC->scriptHandler->erm, source.str());
  44. SCOPED_TRACE("\n" + subject->code);
  45. runClientServer();
  46. EXPECT_CALL(event, getInitialDamage()).WillOnce(Return(23450));
  47. EXPECT_CALL(event, setDamage(Eq(23460))).Times(1);
  48. eventBus.executeEvent(event);
  49. }
  50. TEST_F(ERM_MF, GetsUnitId)
  51. {
  52. setDefaultExpectations();
  53. std::stringstream source;
  54. source << "VERM" << std::endl;
  55. source << "!?MF1;" << std::endl;
  56. source << "!!MF:N?v1;" << std::endl;
  57. loadScript(VLC->scriptHandler->erm, source.str());
  58. SCOPED_TRACE("\n" + subject->code);
  59. runClientServer();
  60. EXPECT_CALL(event, getTarget()).WillRepeatedly(Return(&targetMock));
  61. EXPECT_CALL(targetMock, unitId()).WillRepeatedly(Return(42));
  62. eventBus.executeEvent(event);
  63. JsonNode actualState = context->saveState();
  64. EXPECT_EQ(actualState["ERM"]["v"]["1"].Float(), 42);
  65. }
  66. //TODO:MF:E
  67. //TODO:MF:W
  68. }
  69. }