Plumb CredentialManager::SetLocalDeviceMetadata through to PresenceService

PiperOrigin-RevId: 527257552
This commit is contained in:
Anay Wadhera
2023-04-26 07:16:26 -07:00
committed by Copybara-Service
parent 102679b630
commit fa54c26fcd
5 changed files with 67 additions and 0 deletions
@@ -16,6 +16,7 @@
#define THIRD_PARTY_NEARBY_PRESENCE_IMPLEMENTATION_SERVICE_CONTROLLER_H_
#include <memory>
#include <vector>
#include "absl/status/statusor.h"
#include "presence/broadcast_request.h"
@@ -40,6 +41,13 @@ class ServiceController {
virtual absl::StatusOr<BroadcastSessionId> StartBroadcast(
BroadcastRequest broadcast_request, BroadcastCallback callback) = 0;
virtual void StopBroadcast(BroadcastSessionId session_id) = 0;
virtual void UpdateLocalDeviceMetadata(
const ::nearby::internal::Metadata& metadata, bool regen_credentials,
absl::string_view manager_app_id,
const std::vector<nearby::internal::IdentityType>& identity_types,
int credential_life_cycle_days, int contiguous_copy_of_credentials,
GenerateCredentialsResultCallback credentials_generated_cb) = 0;
virtual ::nearby::internal::Metadata GetLocalDeviceMetadata() = 0;
};
} // namespace presence
@@ -15,6 +15,7 @@
#include "presence/implementation/service_controller_impl.h"
#include <utility>
#include <vector>
#include "absl/status/statusor.h"
#include "presence/data_types.h"
@@ -40,5 +41,17 @@ void ServiceControllerImpl::StopBroadcast(BroadcastSessionId id) {
broadcast_manager_.StopBroadcast(id);
}
void ServiceControllerImpl::UpdateLocalDeviceMetadata(
const ::nearby::internal::Metadata& metadata, bool regen_credentials,
absl::string_view manager_app_id,
const std::vector<nearby::internal::IdentityType>& identity_types,
int credential_life_cycle_days, int contiguous_copy_of_credentials,
GenerateCredentialsResultCallback credentials_generated_cb) {
credential_manager_.SetLocalDeviceMetadata(
metadata, regen_credentials, manager_app_id, identity_types,
credential_life_cycle_days, contiguous_copy_of_credentials,
std::move(credentials_generated_cb));
}
} // namespace presence
} // namespace nearby
@@ -46,6 +46,15 @@ class ServiceControllerImpl : public ServiceController {
absl::StatusOr<BroadcastSessionId> StartBroadcast(
BroadcastRequest broadcast_request, BroadcastCallback callback) override;
void StopBroadcast(BroadcastSessionId) override;
void UpdateLocalDeviceMetadata(
const ::nearby::internal::Metadata& metadata, bool regen_credentials,
absl::string_view manager_app_id,
const std::vector<nearby::internal::IdentityType>& identity_types,
int credential_life_cycle_days, int contiguous_copy_of_credentials,
GenerateCredentialsResultCallback credentials_generated_cb) override;
::nearby::internal::Metadata GetLocalDeviceMetadata() override {
return credential_manager_.GetLocalDeviceMetadata();
}
SingleThreadExecutor& GetBackgroundExecutor() { return executor_; }
+18
View File
@@ -16,6 +16,8 @@
#define THIRD_PARTY_NEARBY_PRESENCE_PRESENCE_SERVICE_H_
#include <memory>
#include <utility>
#include <vector>
#include "internal/platform/borrowable.h"
#include "presence/data_types.h"
@@ -46,6 +48,22 @@ class PresenceService {
void StopBroadcast(BroadcastSessionId session_id);
void UpdateLocalDeviceMetadata(
const ::nearby::internal::Metadata& metadata, bool regen_credentials,
absl::string_view manager_app_id,
const std::vector<nearby::internal::IdentityType>& identity_types,
int credential_life_cycle_days, int contiguous_copy_of_credentials,
GenerateCredentialsResultCallback credentials_generated_cb) {
service_controller_->UpdateLocalDeviceMetadata(
metadata, regen_credentials, manager_app_id, identity_types,
credential_life_cycle_days, contiguous_copy_of_credentials,
std::move(credentials_generated_cb));
}
::nearby::internal::Metadata GetLocalDeviceMetadata() {
return service_controller_->GetLocalDeviceMetadata();
}
private:
std::unique_ptr<ServiceController> service_controller_;
::nearby::Lender<PresenceService *> lender_{this};
+19
View File
@@ -24,11 +24,22 @@ namespace nearby {
namespace presence {
namespace {
using Metadata = ::nearby::internal::Metadata;
class PresenceServiceTest : public testing::Test {
protected:
nearby::MediumEnvironment& env_{nearby::MediumEnvironment::Instance()};
};
Metadata CreateTestMetadata(absl::string_view account_name) {
Metadata metadata;
metadata.set_account_name(account_name);
metadata.set_device_name("NP test device");
metadata.set_device_profile_url("test_image.test.com");
metadata.set_bluetooth_mac_address("\xFF\xFF\xFF\xFF\xFF\xFF");
return metadata;
}
TEST_F(PresenceServiceTest, DefaultConstructorWorks) {
PresenceService presence_service;
}
@@ -59,6 +70,14 @@ TEST_F(PresenceServiceTest, StartThenStopScan) {
env_.Stop();
}
TEST_F(PresenceServiceTest, UpdatingLocalMetadataWorks) {
PresenceService presence_service;
presence_service.UpdateLocalDeviceMetadata(CreateTestMetadata("Test account"),
false, "Test app", {}, 3, 1, {});
EXPECT_EQ(presence_service.GetLocalDeviceMetadata().SerializeAsString(),
CreateTestMetadata("Test account").SerializeAsString());
}
} // namespace
} // namespace presence
} // namespace nearby