50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
/*
|
|
* 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 */
|