blob: 92fc00c0a409138c143763afcceed70feef77795 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromeos/services/device_sync/fake_cryptauth_scheduler.h"
#include "base/logging.h"
namespace chromeos {
namespace device_sync {
constexpr base::TimeDelta FakeCryptAuthScheduler::kDefaultRefreshPeriod;
constexpr base::TimeDelta
FakeCryptAuthScheduler::kDefaultTimeToNextEnrollmentRequest;
FakeCryptAuthScheduler::FakeCryptAuthScheduler() = default;
FakeCryptAuthScheduler::~FakeCryptAuthScheduler() = default;
void FakeCryptAuthScheduler::RequestEnrollment(
const cryptauthv2::ClientMetadata::InvocationReason& invocation_reason,
const base::Optional<std::string>& session_id) {
DCHECK(HasEnrollmentSchedulingStarted());
is_waiting_for_enrollment_result_ = true;
cryptauthv2::ClientMetadata client_metadata;
client_metadata.set_retry_count(num_consecutive_enrollment_failures_);
client_metadata.set_invocation_reason(invocation_reason);
if (session_id)
client_metadata.set_session_id(*session_id);
NotifyEnrollmentRequested(client_metadata,
client_directive_policy_reference_);
}
void FakeCryptAuthScheduler::HandleEnrollmentResult(
const CryptAuthEnrollmentResult& enrollment_result) {
DCHECK(is_waiting_for_enrollment_result_);
handled_enrollment_results_.push_back(enrollment_result);
is_waiting_for_enrollment_result_ = false;
}
base::Optional<base::Time>
FakeCryptAuthScheduler::GetLastSuccessfulEnrollmentTime() const {
return last_successful_enrollment_time_;
}
base::TimeDelta FakeCryptAuthScheduler::GetRefreshPeriod() const {
return refresh_period_;
}
base::TimeDelta FakeCryptAuthScheduler::GetTimeToNextEnrollmentRequest() const {
return time_to_next_enrollment_request_;
}
bool FakeCryptAuthScheduler::IsWaitingForEnrollmentResult() const {
return is_waiting_for_enrollment_result_;
}
size_t FakeCryptAuthScheduler::GetNumConsecutiveEnrollmentFailures() const {
return num_consecutive_enrollment_failures_;
}
FakeCryptAuthSchedulerEnrollmentDelegate::
FakeCryptAuthSchedulerEnrollmentDelegate()
: weak_ptr_factory_(this) {}
FakeCryptAuthSchedulerEnrollmentDelegate::
~FakeCryptAuthSchedulerEnrollmentDelegate() = default;
base::WeakPtr<FakeCryptAuthSchedulerEnrollmentDelegate>
FakeCryptAuthSchedulerEnrollmentDelegate::GetWeakPtr() {
return weak_ptr_factory_.GetWeakPtr();
}
void FakeCryptAuthSchedulerEnrollmentDelegate::OnEnrollmentRequested(
const cryptauthv2::ClientMetadata& client_metadata,
const base::Optional<cryptauthv2::PolicyReference>&
client_directive_policy_reference) {
client_metadata_from_enrollment_requests_.push_back(client_metadata);
policy_references_from_enrollment_requests_.push_back(
client_directive_policy_reference);
}
} // namespace device_sync
} // namespace chromeos