#ifndef FSFW_TESTS_SRC_FSFW_TESTS_UNIT_MOCKS_POWERSWITCHERMOCK_H_ #define FSFW_TESTS_SRC_FSFW_TESTS_UNIT_MOCKS_POWERSWITCHERMOCK_H_ #include #include #include struct SwitchInfo { public: SwitchInfo(); SwitchInfo(power::Switch_t switcher, ReturnValue_t initState); power::Switch_t switcher; ReturnValue_t currentState = PowerSwitchIF::SWITCH_OFF; uint32_t timesCalledOn = 0; uint32_t timesCalledOff = 0; uint32_t timesStatusRequested = 0; }; struct FuseInfo { public: FuseInfo(uint8_t fuse); uint8_t fuse; uint32_t timesCalled = 0; }; class PowerSwitcherMock : public PowerSwitchIF { public: PowerSwitcherMock(); ReturnValue_t sendSwitchCommand(power::Switch_t switchNr, ReturnValue_t onOff) override; ReturnValue_t sendFuseOnCommand(uint8_t fuseNr) override; ReturnValue_t getSwitchState(power::Switch_t switchNr) const override; ReturnValue_t getFuseState(uint8_t fuseNr) const override; uint32_t getSwitchDelayMs(void) const override; void getSwitchInfo(power::Switch_t switcher, SwitchInfo& info); void getFuseInfo(uint8_t fuse, FuseInfo& info); uint32_t getAmountSwitchStatWasRequested(); void initSwitch(power::Switch_t switchNr); private: using SwitchOnOffPair = std::pair; using FuseOnOffPair = std::pair; std::map switchMap; std::map fuseMap; }; #endif /* FSFW_TESTS_SRC_FSFW_TESTS_UNIT_MOCKS_POWERSWITCHERMOCK_H_ */