diff options
Diffstat (limited to 'src/components/functional_module/test/include/module_timer_test.h')
-rw-r--r-- | src/components/functional_module/test/include/module_timer_test.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/components/functional_module/test/include/module_timer_test.h b/src/components/functional_module/test/include/module_timer_test.h new file mode 100644 index 0000000000..456346b544 --- /dev/null +++ b/src/components/functional_module/test/include/module_timer_test.h @@ -0,0 +1,56 @@ +#include "utils/macro.h" +#include "functional_module/timer/module_timer.h" + +namespace functional_modules { + +class TestTrackable : public Trackable { + public: + explicit TestTrackable(TimeUnit interval = 0) + : Trackable(), custom_interval_(interval) {} + + virtual TimeUnit custom_interval() const { + return custom_interval_; + } + + bool operator==(const TestTrackable& other) const { + return custom_interval_ == other.custom_interval_; + } + + private: + TimeUnit custom_interval_; +}; + +class ModuleTimerTest { + public: + ModuleTimerTest(ModuleTimer<TestTrackable>& timer) : timer_(timer) {} + + TimeUnit period() const { + return timer_.period_; + } + + int observers_size() const { + return timer_.observers_.size(); + } + + int trackables_size() const { + return timer_.trackables_.size(); + } + + TestTrackable trackable(const TestTrackable& track) const { + return *std::find( + timer_.trackables_.begin(), timer_.trackables_.end(), track); + } + + TimeUnit current_time() const { + return timer_.CurrentTime(); + } + + private: + ModuleTimer<TestTrackable>& timer_; +}; + +class MockTimerObserver : public TimerObserver<TestTrackable> { + public: + MOCK_METHOD1(OnTimeoutTriggered, void(const TestTrackable& expired)); +}; +} // namespace functional_modules |