#include #include #include "consensus/validation.h" #include "main.h" class MockCValidationState : public CValidationState { public: MOCK_METHOD5(DoS, bool(int level, bool ret, unsigned char chRejectCodeIn, std::string strRejectReasonIn, bool corruptionIn)); MOCK_METHOD3(Invalid, bool(bool ret, unsigned char _chRejectCode, std::string _strRejectReason)); MOCK_METHOD1(Error, bool(std::string strRejectReasonIn)); MOCK_CONST_METHOD0(IsValid, bool()); MOCK_CONST_METHOD0(IsInvalid, bool()); MOCK_CONST_METHOD0(IsError, bool()); MOCK_CONST_METHOD1(IsInvalid, bool(int &nDoSOut)); MOCK_CONST_METHOD0(CorruptionPossible, bool()); MOCK_CONST_METHOD0(GetRejectCode, unsigned char()); MOCK_CONST_METHOD0(GetRejectReason, std::string()); }; TEST(CheckBlock, VersionTooLow) { CBlock block; block.nVersion = 1; MockCValidationState state; EXPECT_CALL(state, DoS(100, false, REJECT_INVALID, "version-too-low", false)).Times(1); EXPECT_FALSE(CheckBlock(0,0,block, state, false, false)); }