update_engine: Template specialized UpdateManager interface for mockability
This change is to create an interface that is for testing
|UpdateManager|. Currently the |UpdateMaanger| exists by having two main
member functions that are templatized allowing for a generic set of
policy methods to be passed in taking a abitrary set of arguments. The
downside of this design is the difficulty when testing such a class.
Next steps are to refactor |Policy| and |UpdateManager| to exist
together without the need for templatized member function within
|UpdateManager| as the whole set of policy methods that can be passed in
are already determined (UpdateCheckAllowed, UpdateCanBeApplied,
UpdateCanStart, UpdateDownloadAllowed, P2PEnabled, P2PEnabledChanged).
The issue is that these functions each take a different set of arguments
and can probably be combined into one generic set of arguments making
the |UpdateManager| much simpler to manage.
BUG=chromium:924165
TEST=unittests
TEST=FEATURES="test" emerge-${BOARD} update_engine
Change-Id: Ia8091495079f9324bccf5e717d5f26ea7ef24514
diff --git a/update_attempter.cc b/update_attempter.cc
index b3cb3c3..8df8b61 100644
--- a/update_attempter.cc
+++ b/update_attempter.cc
@@ -163,7 +163,8 @@
Bind(&UpdateAttempter::OnUpdateScheduled, base::Unretained(this));
// We limit the async policy request to a reasonably short time, to avoid a
// starvation due to a transient bug.
- update_manager->AsyncPolicyRequest(callback, &Policy::UpdateCheckAllowed);
+ update_manager->AsyncPolicyRequestUpdateCheckAllowed(
+ callback, &Policy::UpdateCheckAllowed);
waiting_for_scheduled_check_ = true;
return true;
}