Utilize ScanManager for scan operation in service controller.

PiperOrigin-RevId: 486208283
This commit is contained in:
Hai Shang
2022-11-04 12:50:19 -07:00
committed by Copybara-Service
parent 79ca955c6f
commit de4e7a66dc
4 changed files with 42 additions and 11 deletions
+1
View File
@@ -124,6 +124,7 @@ cc_test(
deps = [
":presence",
":types",
"//internal/platform:test_util",
"//internal/platform/implementation/g3", # build_cleaner: keep
"@com_github_protobuf_matchers//protobuf-matchers",
"@com_google_googletest//:gtest_main",
@@ -21,8 +21,8 @@ namespace presence {
std::unique_ptr<ScanSession> ServiceControllerImpl::StartScan(
ScanRequest scan_request, ScanCallback callback) {
callback.start_scan_cb({Status::Value::kError});
return nullptr;
return std::make_unique<ScanSession>(
scan_manager_.StartScan(scan_request, callback));
}
std::unique_ptr<BroadcastSession> ServiceControllerImpl::StartBroadcast(
BroadcastRequest broadcast_request, BroadcastCallback callback) {
+17 -5
View File
@@ -15,6 +15,7 @@
#include "presence/presence_client.h"
#include "gtest/gtest.h"
#include "internal/platform/medium_environment.h"
#include "presence/data_types.h"
#include "presence/presence_service.h"
#include "presence/status.h"
@@ -23,8 +24,16 @@ namespace nearby {
namespace presence {
namespace {
TEST(PresenceClientTest, StartBroadcastWithDefaultConstructor) {
Status broadcast_result = {Status::Value::kSuccess};
class PresenceClientTest : public testing::Test {
protected:
PresenceClientTest() { env_.Stop(); }
location::nearby::MediumEnvironment& env_{
location::nearby::MediumEnvironment::Instance()};
};
TEST_F(PresenceClientTest, StartBroadcastWithDefaultConstructor) {
env_.Start();
Status broadcast_result = {Status::Value::kError};
BroadcastCallback broadcast_callback = {
.start_broadcast_cb = [&](Status status) { broadcast_result = status; },
};
@@ -34,10 +43,12 @@ TEST(PresenceClientTest, StartBroadcastWithDefaultConstructor) {
presence_client.StartBroadcast({}, broadcast_callback);
EXPECT_FALSE(broadcast_result.Ok());
env_.Stop();
}
TEST(PresenceClientTest, StartScanWithDefaultConstructor) {
Status scan_result = {Status::Value::kSuccess};
TEST_F(PresenceClientTest, StartScanWithDefaultConstructor) {
env_.Start();
Status scan_result = {Status::Value::kError};
ScanCallback scan_callback = {
.start_scan_cb = [&](Status status) { scan_result = status; },
};
@@ -46,7 +57,8 @@ TEST(PresenceClientTest, StartScanWithDefaultConstructor) {
PresenceClient presence_client = presence_service.CreatePresenceClient();
presence_client.StartScan({}, scan_callback);
EXPECT_FALSE(scan_result.Ok());
EXPECT_TRUE(scan_result.Ok());
env_.Stop();
}
} // namespace
+22 -4
View File
@@ -15,17 +15,27 @@
#include "presence/presence_service.h"
#include "gtest/gtest.h"
#include "internal/platform/medium_environment.h"
#include "presence/presence_client.h"
#include "presence/status.h"
namespace nearby {
namespace presence {
namespace {
TEST(PresenceServiceTest, DefaultConstructorWorks) {
class PresenceServiceTest : public testing::Test {
protected:
PresenceServiceTest() { env_.Stop(); }
location::nearby::MediumEnvironment& env_{
location::nearby::MediumEnvironment::Instance()};
};
TEST_F(PresenceServiceTest, DefaultConstructorWorks) {
PresenceService presence_service;
}
TEST(PresenceServiceTest, StartScan) {
TEST_F(PresenceServiceTest, StartThenStopScan) {
env_.Start();
Status scan_result = {Status::Value::kSuccess};
ScanCallback scan_callback = {
.start_scan_cb = [&](Status status) { scan_result = status; },
@@ -40,8 +50,16 @@ TEST(PresenceServiceTest, StartScan) {
auto scan_session_with_default_params =
client.StartScan(ScanRequest(), ScanCallback());
EXPECT_EQ(scan_session, nullptr);
EXPECT_EQ(scan_session_with_default_params, nullptr);
EXPECT_NE(scan_session, nullptr);
EXPECT_NE(scan_session_with_default_params, nullptr);
Status stop_scan_session_status = scan_session->StopScan();
Status scan_session_with_default_params_status =
scan_session_with_default_params->StopScan();
EXPECT_TRUE(stop_scan_session_status.Ok());
EXPECT_TRUE(scan_session_with_default_params_status.Ok());
env_.Stop();
}
} // namespace