diff --git a/presence/BUILD b/presence/BUILD index 5063e8ef..ee4d0e94 100644 --- a/presence/BUILD +++ b/presence/BUILD @@ -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", diff --git a/presence/implementation/service_controller_impl.cc b/presence/implementation/service_controller_impl.cc index 8c4404db..65a88acf 100644 --- a/presence/implementation/service_controller_impl.cc +++ b/presence/implementation/service_controller_impl.cc @@ -21,8 +21,8 @@ namespace presence { std::unique_ptr ServiceControllerImpl::StartScan( ScanRequest scan_request, ScanCallback callback) { - callback.start_scan_cb({Status::Value::kError}); - return nullptr; + return std::make_unique( + scan_manager_.StartScan(scan_request, callback)); } std::unique_ptr ServiceControllerImpl::StartBroadcast( BroadcastRequest broadcast_request, BroadcastCallback callback) { diff --git a/presence/presence_client_test.cc b/presence/presence_client_test.cc index efff8213..511d656e 100644 --- a/presence/presence_client_test.cc +++ b/presence/presence_client_test.cc @@ -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 diff --git a/presence/presence_service_test.cc b/presence/presence_service_test.cc index 806d4f16..d239d7eb 100644 --- a/presence/presence_service_test.cc +++ b/presence/presence_service_test.cc @@ -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