Refresh Manager

This commit is contained in:
Janik Schlemminger
2014-03-09 05:24:50 -07:00
parent 3567ff3345
commit f951eae4e9
3 changed files with 157 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
/*
* RefreshManager_test.cpp
*
* Created on: Mar 6, 2014
* Author: jonny
*/
#include <gtest/gtest.h>
#include <gmock/gmock.h>
#include "core/RefreshManager.h"
using ::testing::_;
using ::testing::AtLeast;
using ::testing::Expectation;
namespace controller {
class MockInternalScheduler: public InternalScheduler
{
public:
MOCK_METHOD1(scheduleCommand, void (ScheduledCommand command));
};
TEST(RefreshManager, RefreshIsScheduledAfterStartup)
{
Configuration config;
MockInternalScheduler internalScheduler;
auto init = ScheduledCommand(Command::Refresh, config.Timings.tREF);
EXPECT_CALL(internalScheduler, scheduleCommand(init));
RefreshManager manager(config, internalScheduler);
}
TEST(RefreshManager, FinishedRefreshTriggersNewRefresh)
{
Configuration config;
MockInternalScheduler internalScheduler;
EXPECT_CALL(internalScheduler, scheduleCommand(_)).Times(2);
//schedule first refresh in constructor
RefreshManager manager(config, internalScheduler);
//schedule second refresh in callback (end_refresh)
manager.refreshFinished(config.Timings.tREF + config.Timings.tREFA);
}
} /* namespace controller */