mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-15 07:06:11 -04:00
Create FakeFastPairRepository for test support
PiperOrigin-RevId: 506720516
This commit is contained in:
@@ -29,6 +29,20 @@ cc_library(
|
||||
],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "test_support",
|
||||
srcs = ["fake_fast_pair_repository.cc"],
|
||||
hdrs = ["fake_fast_pair_repository.h"],
|
||||
deps = [
|
||||
":server_access",
|
||||
"//fastpair/common",
|
||||
"//fastpair/proto:fastpair_cc_proto",
|
||||
"//fastpair/repository",
|
||||
"@com_google_absl//absl/container:flat_hash_map",
|
||||
"@com_google_absl//absl/strings",
|
||||
],
|
||||
)
|
||||
|
||||
cc_test(
|
||||
name = "server_access_test",
|
||||
srcs = [
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#include "fastpair/server_access/fake_fast_pair_repository.h"
|
||||
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "fastpair/proto/fastpair_rpcs.proto.h"
|
||||
|
||||
namespace nearby {
|
||||
namespace fastpair {
|
||||
void FakeFastPairRepository::SetFakeMetadata(absl::string_view hex_model_id,
|
||||
proto::Device metadata) {
|
||||
proto::GetObservedDeviceResponse response;
|
||||
*response.mutable_device() = metadata;
|
||||
data_[hex_model_id] = std::make_unique<DeviceMetadata>(response);
|
||||
}
|
||||
|
||||
void FakeFastPairRepository::ClearFakeMetadata(absl::string_view hex_model_id) {
|
||||
data_.erase(hex_model_id);
|
||||
}
|
||||
|
||||
void FakeFastPairRepository::GetDeviceMetadata(
|
||||
absl::string_view hex_model_id, DeviceMetadataCallback callback) {
|
||||
callback_ = std::move(callback);
|
||||
if (data_.contains(hex_model_id)) {
|
||||
std::move(callback_)(*data_[hex_model_id]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace fastpair
|
||||
} // namespace nearby
|
||||
@@ -0,0 +1,48 @@
|
||||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef THIRD_PARTY_NEARBY_FASTPAIR_SERVER_ACCESS_FAKE_FAST_PAIR_REPOSITORY_H_
|
||||
#define THIRD_PARTY_NEARBY_FASTPAIR_SERVER_ACCESS_FAKE_FAST_PAIR_REPOSITORY_H_
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
#include "absl/container/flat_hash_map.h"
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "fastpair/repository/device_metadata.h"
|
||||
#include "fastpair/server_access/fast_pair_repository.h"
|
||||
|
||||
namespace nearby {
|
||||
namespace fastpair {
|
||||
class FakeFastPairRepository : public FastPairRepository {
|
||||
public:
|
||||
FakeFastPairRepository();
|
||||
FakeFastPairRepository(const FakeFastPairRepository&) = delete;
|
||||
FakeFastPairRepository& operator=(const FakeFastPairRepository&) = delete;
|
||||
~FakeFastPairRepository() override;
|
||||
|
||||
void SetFakeMetadata(absl::string_view hex_model_id, proto::Device metadata);
|
||||
void ClearFakeMetadata(absl::string_view hex_model_id);
|
||||
// FastPairRepository::
|
||||
void GetDeviceMetadata(absl::string_view hex_model_id,
|
||||
DeviceMetadataCallback callback) override;
|
||||
|
||||
private:
|
||||
absl::flat_hash_map<std::string, std::unique_ptr<DeviceMetadata>> data_;
|
||||
DeviceMetadataCallback callback_;
|
||||
};
|
||||
} // namespace fastpair
|
||||
} // namespace nearby
|
||||
|
||||
#endif // THIRD_PARTY_NEARBY_FASTPAIR_SERVER_ACCESS_FAKE_FAST_PAIR_REPOSITORY_H_
|
||||
Reference in New Issue
Block a user