separate unittest folder
This commit is contained in:
71
unittests/power/testPowerSwitcher.cpp
Normal file
71
unittests/power/testPowerSwitcher.cpp
Normal file
@ -0,0 +1,71 @@
|
||||
#include <fsfw/power/DummyPowerSwitcher.h>
|
||||
#include <fsfw/power/PowerSwitcher.h>
|
||||
#include <fsfw_tests/unit/mocks/PowerSwitcherMock.h>
|
||||
|
||||
#include <catch2/catch_test_macros.hpp>
|
||||
|
||||
#include "objects/systemObjectList.h"
|
||||
|
||||
TEST_CASE("Power Switcher", "[power-switcher]") {
|
||||
PowerSwitcherMock mock;
|
||||
PowerSwitcher switcher(&mock, 1);
|
||||
DummyPowerSwitcher dummySwitcher(objects::DUMMY_POWER_SWITCHER, 5, 5, false);
|
||||
PowerSwitcher switcherUsingDummy(&dummySwitcher, 1);
|
||||
SwitchInfo switchInfo;
|
||||
mock.initSwitch(1);
|
||||
|
||||
SECTION("Basic Tests") {
|
||||
REQUIRE(switcher.getFirstSwitch() == 1);
|
||||
REQUIRE(switcher.getSecondSwitch() == power::NO_SWITCH);
|
||||
// Default start state
|
||||
REQUIRE(switcher.getState() == PowerSwitcher::SWITCH_IS_OFF);
|
||||
switcher.turnOn(true);
|
||||
REQUIRE(mock.getAmountSwitchStatWasRequested() == 1);
|
||||
REQUIRE(switcher.getState() == PowerSwitcher::WAIT_ON);
|
||||
REQUIRE(switcher.checkSwitchState() == PowerSwitcher::IN_POWER_TRANSITION);
|
||||
REQUIRE(switcher.active());
|
||||
switcher.doStateMachine();
|
||||
REQUIRE(switcher.getState() == PowerSwitcher::SWITCH_IS_ON);
|
||||
mock.getSwitchInfo(1, switchInfo);
|
||||
REQUIRE(switchInfo.timesCalledOn == 1);
|
||||
REQUIRE(not switcher.active());
|
||||
REQUIRE(mock.getAmountSwitchStatWasRequested() == 2);
|
||||
REQUIRE(switcher.checkSwitchState() == HasReturnvaluesIF::RETURN_OK);
|
||||
REQUIRE(mock.getAmountSwitchStatWasRequested() == 3);
|
||||
switcher.turnOff(false);
|
||||
REQUIRE(mock.getAmountSwitchStatWasRequested() == 3);
|
||||
REQUIRE(switcher.getState() == PowerSwitcher::WAIT_OFF);
|
||||
REQUIRE(switcher.active());
|
||||
REQUIRE(switcher.getState() == PowerSwitcher::WAIT_OFF);
|
||||
switcher.doStateMachine();
|
||||
mock.getSwitchInfo(1, switchInfo);
|
||||
REQUIRE(switcher.getState() == PowerSwitcher::SWITCH_IS_OFF);
|
||||
REQUIRE(switchInfo.timesCalledOn == 1);
|
||||
REQUIRE(switchInfo.timesCalledOff == 1);
|
||||
REQUIRE(not switcher.active());
|
||||
REQUIRE(mock.getAmountSwitchStatWasRequested() == 4);
|
||||
}
|
||||
|
||||
SECTION("Dummy Test") {
|
||||
// Same tests, but we can't really check the dummy
|
||||
REQUIRE(switcherUsingDummy.getFirstSwitch() == 1);
|
||||
REQUIRE(switcherUsingDummy.getSecondSwitch() == power::NO_SWITCH);
|
||||
REQUIRE(switcherUsingDummy.getState() == PowerSwitcher::SWITCH_IS_OFF);
|
||||
switcherUsingDummy.turnOn(true);
|
||||
REQUIRE(switcherUsingDummy.getState() == PowerSwitcher::WAIT_ON);
|
||||
REQUIRE(switcherUsingDummy.active());
|
||||
switcherUsingDummy.doStateMachine();
|
||||
REQUIRE(switcherUsingDummy.getState() == PowerSwitcher::SWITCH_IS_ON);
|
||||
REQUIRE(not switcherUsingDummy.active());
|
||||
|
||||
switcherUsingDummy.turnOff(false);
|
||||
REQUIRE(switcherUsingDummy.getState() == PowerSwitcher::WAIT_OFF);
|
||||
REQUIRE(switcherUsingDummy.active());
|
||||
REQUIRE(switcherUsingDummy.getState() == PowerSwitcher::WAIT_OFF);
|
||||
switcherUsingDummy.doStateMachine();
|
||||
REQUIRE(switcherUsingDummy.getState() == PowerSwitcher::SWITCH_IS_OFF);
|
||||
REQUIRE(not switcherUsingDummy.active());
|
||||
}
|
||||
|
||||
SECTION("More Dummy Tests") {}
|
||||
}
|
Reference in New Issue
Block a user