mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-16 15:36:12 -04:00
Change FakePublicCertificateDb to be more compatible with Chrome unittests.
PiperOrigin-RevId: 603583582
This commit is contained in:
committed by
Copybara-Service
parent
e1dd4fd535
commit
e4fea7a594
@@ -14,12 +14,12 @@
|
||||
|
||||
#include "sharing/internal/test/fake_public_certificate_db.h"
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "absl/container/flat_hash_map.h"
|
||||
#include "absl/functional/any_invocable.h"
|
||||
#include "absl/types/span.h"
|
||||
#include "sharing/internal/api/public_certificate_database.h"
|
||||
@@ -29,36 +29,33 @@ namespace nearby {
|
||||
|
||||
using ::nearby::sharing::proto::PublicCertificate;
|
||||
|
||||
FakePublicCertificateDb::FakePublicCertificateDb(
|
||||
std::map<std::string, PublicCertificate> entries)
|
||||
: entries_(std::move(entries)) {}
|
||||
|
||||
void FakePublicCertificateDb::Initialize(
|
||||
absl::AnyInvocable<void(PublicCertificateDatabase::InitStatus) &&>
|
||||
callback) {
|
||||
std::move(callback)(PublicCertificateDatabase::InitStatus::kOk);
|
||||
init_status_callback_ = std::move(callback);
|
||||
}
|
||||
|
||||
void FakePublicCertificateDb::LoadEntries(
|
||||
absl::AnyInvocable<void(bool,
|
||||
std::unique_ptr<std::vector<PublicCertificate>>) &&>
|
||||
callback) {
|
||||
auto result = std::make_unique<std::vector<PublicCertificate>>();
|
||||
auto it = entries_.begin();
|
||||
while (it != entries_.end()) {
|
||||
result->push_back(it->second);
|
||||
++it;
|
||||
}
|
||||
|
||||
std::move(callback)(true, std::move(result));
|
||||
load_callback_ = std::move(callback);
|
||||
}
|
||||
|
||||
void FakePublicCertificateDb::AddCertificates(
|
||||
absl::Span<const PublicCertificate> certificates,
|
||||
absl::AnyInvocable<void(bool) &&> callback) {
|
||||
for (const auto& cert : certificates) {
|
||||
if (entries_.contains(cert.secret_id())) {
|
||||
if (entries_.find(cert.secret_id()) != entries_.end()) {
|
||||
entries_.erase(cert.secret_id());
|
||||
}
|
||||
entries_.emplace(cert.secret_id(), cert);
|
||||
}
|
||||
std::move(callback)(true);
|
||||
add_callback_ = std::move(callback);
|
||||
}
|
||||
|
||||
void FakePublicCertificateDb::RemoveCertificatesById(
|
||||
@@ -69,13 +66,41 @@ void FakePublicCertificateDb::RemoveCertificatesById(
|
||||
entries_.erase(*it);
|
||||
++it;
|
||||
}
|
||||
std::move(callback)(true);
|
||||
remove_callback_ = std::move(callback);
|
||||
}
|
||||
|
||||
void FakePublicCertificateDb::Destroy(
|
||||
absl::AnyInvocable<void(bool) &&> callback) {
|
||||
entries_.clear();
|
||||
std::move(callback)(true);
|
||||
destroy_callback_ = std::move(callback);
|
||||
}
|
||||
|
||||
void FakePublicCertificateDb::InvokeInitStatusCallback(
|
||||
PublicCertificateDatabase::InitStatus init_status) {
|
||||
std::move(init_status_callback_)(init_status);
|
||||
}
|
||||
|
||||
void FakePublicCertificateDb::InvokeLoadCallback(bool success) {
|
||||
auto result = std::make_unique<std::vector<PublicCertificate>>();
|
||||
auto it = entries_.begin();
|
||||
while (it != entries_.end()) {
|
||||
result->push_back(it->second);
|
||||
++it;
|
||||
}
|
||||
std::move(load_callback_)(success, std::move(result));
|
||||
}
|
||||
|
||||
void FakePublicCertificateDb::InvokeAddCallback(bool success) {
|
||||
std::move(add_callback_)(success);
|
||||
}
|
||||
|
||||
void FakePublicCertificateDb::InvokeRemoveCallback(bool success) {
|
||||
std::move(remove_callback_)(success);
|
||||
}
|
||||
|
||||
void FakePublicCertificateDb::InvokeDestroyCallback(bool success) {
|
||||
std::move(destroy_callback_)(success);
|
||||
}
|
||||
|
||||
|
||||
} // namespace nearby
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
#ifndef THIRD_PARTY_NEARBY_SHARING_INTERNAL_TEST_FAKE_PUBLIC_CERTIFICATE_DB_H_
|
||||
#define THIRD_PARTY_NEARBY_SHARING_INTERNAL_TEST_FAKE_PUBLIC_CERTIFICATE_DB_H_
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "absl/container/flat_hash_map.h"
|
||||
#include "absl/functional/any_invocable.h"
|
||||
#include "absl/types/span.h"
|
||||
#include "sharing/internal/api/public_certificate_database.h"
|
||||
@@ -29,7 +29,8 @@ namespace nearby {
|
||||
class FakePublicCertificateDb
|
||||
: public nearby::sharing::api::PublicCertificateDatabase {
|
||||
public:
|
||||
FakePublicCertificateDb() = default;
|
||||
explicit FakePublicCertificateDb(
|
||||
std::map<std::string, nearby::sharing::proto::PublicCertificate> entries);
|
||||
~FakePublicCertificateDb() override = default;
|
||||
|
||||
void Initialize(
|
||||
@@ -49,14 +50,32 @@ class FakePublicCertificateDb
|
||||
absl::AnyInvocable<void(bool) &&> callback) override;
|
||||
void Destroy(absl::AnyInvocable<void(bool) &&> callback) override;
|
||||
|
||||
absl::flat_hash_map<std::string, nearby::sharing::proto::PublicCertificate>
|
||||
std::map<std::string, nearby::sharing::proto::PublicCertificate>
|
||||
GetCertificatesMap() {
|
||||
return entries_;
|
||||
}
|
||||
|
||||
// Invoke callbacks
|
||||
void InvokeInitStatusCallback(
|
||||
nearby::sharing::api::PublicCertificateDatabase::InitStatus init_status);
|
||||
void InvokeLoadCallback(bool success);
|
||||
void InvokeAddCallback(bool success);
|
||||
void InvokeRemoveCallback(bool success);
|
||||
void InvokeDestroyCallback(bool success);
|
||||
|
||||
private:
|
||||
absl::flat_hash_map<std::string, nearby::sharing::proto::PublicCertificate>
|
||||
std::map<std::string, nearby::sharing::proto::PublicCertificate>
|
||||
entries_;
|
||||
absl::AnyInvocable<
|
||||
void(nearby::sharing::api::PublicCertificateDatabase::InitStatus) &&>
|
||||
init_status_callback_;
|
||||
absl::AnyInvocable<
|
||||
void(bool, std::unique_ptr<std::vector<
|
||||
nearby::sharing::proto::PublicCertificate>>) &&>
|
||||
load_callback_;
|
||||
absl::AnyInvocable<void(bool) &&> add_callback_;
|
||||
absl::AnyInvocable<void(bool) &&> remove_callback_;
|
||||
absl::AnyInvocable<void(bool) &&> destroy_callback_;
|
||||
};
|
||||
|
||||
} // namespace nearby
|
||||
|
||||
Reference in New Issue
Block a user