Files
DRAMSys/DRAM/testing/RefreshManager_test.cpp
Janik Schlemminger f951eae4e9 Refresh Manager
2014-03-09 05:24:50 -07:00

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 */