1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/download/internal/background_service/test/test_store.h"
#include <memory>
#include "components/download/internal/background_service/entry.h"
namespace download {
namespace test {
TestStore::TestStore() : ready_(false), init_called_(false) {}
TestStore::~TestStore() = default;
bool TestStore::IsInitialized() {
return ready_;
}
void TestStore::Initialize(InitCallback callback) {
init_called_ = true;
init_callback_ = std::move(callback);
if (automatic_callback_response_.has_value())
TriggerInit(automatic_callback_response_.value(),
std::make_unique<std::vector<Entry>>());
}
void TestStore::HardRecover(StoreCallback callback) {
hard_recover_callback_ = std::move(callback);
if (automatic_callback_response_.has_value())
TriggerHardRecover(automatic_callback_response_.value());
}
void TestStore::Update(const Entry& entry, StoreCallback callback) {
updated_entries_.push_back(entry);
update_callback_ = std::move(callback);
if (automatic_callback_response_.has_value())
TriggerUpdate(automatic_callback_response_.value());
}
void TestStore::Remove(const std::string& guid, StoreCallback callback) {
removed_entries_.push_back(guid);
remove_callback_ = std::move(callback);
if (automatic_callback_response_.has_value())
TriggerRemove(automatic_callback_response_.value());
}
void TestStore::AutomaticallyTriggerAllFutureCallbacks(bool success) {
automatic_callback_response_ = success;
}
void TestStore::TriggerInit(bool success,
std::unique_ptr<std::vector<Entry>> entries) {
ready_ = success;
DCHECK(init_callback_);
std::move(init_callback_).Run(success, std::move(entries));
}
void TestStore::TriggerHardRecover(bool success) {
DCHECK(hard_recover_callback_);
std::move(hard_recover_callback_).Run(success);
}
void TestStore::TriggerUpdate(bool success) {
DCHECK(update_callback_);
std::move(update_callback_).Run(success);
}
void TestStore::TriggerRemove(bool success) {
DCHECK(remove_callback_);
std::move(remove_callback_).Run(success);
}
const Entry* TestStore::LastUpdatedEntry() const {
return &updated_entries_.back();
}
std::string TestStore::LastRemovedEntry() const {
return removed_entries_.back();
}
} // namespace test
} // namespace download
|