| // Copyright 2023 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include <memory> | |
| #include <utility> | |
| #include "biod/biometrics_manager.h" | |
| #include "biod/mock_biometrics_manager.h" | |
| #include "biod/session.h" | |
| #include <gtest/gtest.h> | |
| namespace biod { | |
| namespace { | |
| TEST(SessionTest, EmptySessionError) { | |
| BiometricsManager::EnrollSession enroll_session; | |
| EXPECT_TRUE(enroll_session.error().empty()); | |
| } | |
| TEST(SessionTest, SessionError) { | |
| std::string session_error = "HW is not available"; | |
| BiometricsManager::EnrollSession enroll_session; | |
| enroll_session.set_error(session_error); | |
| EXPECT_EQ(enroll_session.error(), session_error); | |
| } | |
| TEST(SessionTest, MoveConstructor) { | |
| MockBiometricsManager mock_biometrics_manager; | |
| const std::string kSessionError = "HW is not available"; | |
| BiometricsManager::EnrollSession enroll_session_1( | |
| mock_biometrics_manager.session_weak_factory_.GetWeakPtr()); | |
| enroll_session_1.set_error(kSessionError); | |
| ASSERT_TRUE(enroll_session_1); | |
| BiometricsManager::EnrollSession enroll_session_2( | |
| std::move(enroll_session_1)); | |
| EXPECT_TRUE(enroll_session_1.error().empty()); | |
| EXPECT_EQ(enroll_session_2.error(), kSessionError); | |
| EXPECT_FALSE(enroll_session_1); | |
| EXPECT_TRUE(enroll_session_2); | |
| } | |
| TEST(SessionTest, MoveAssignment) { | |
| MockBiometricsManager mock_biometrics_manager; | |
| const std::string kSessionError = "HW is not available"; | |
| BiometricsManager::EnrollSession enroll_session_1( | |
| mock_biometrics_manager.session_weak_factory_.GetWeakPtr()); | |
| enroll_session_1.set_error(kSessionError); | |
| BiometricsManager::EnrollSession enroll_session_2; | |
| ASSERT_TRUE(enroll_session_1); | |
| ASSERT_FALSE(enroll_session_2); | |
| enroll_session_2 = std::move(enroll_session_1); | |
| EXPECT_TRUE(enroll_session_1.error().empty()); | |
| EXPECT_EQ(enroll_session_2.error(), kSessionError); | |
| EXPECT_FALSE(enroll_session_1); | |
| EXPECT_TRUE(enroll_session_2); | |
| } | |
| TEST(SessionTest, EndValidSession) { | |
| MockBiometricsManager mock_biometrics_manager; | |
| const std::string kSessionError = "HW is not available"; | |
| BiometricsManager::EnrollSession enroll_session_1( | |
| mock_biometrics_manager.session_weak_factory_.GetWeakPtr()); | |
| enroll_session_1.set_error(kSessionError); | |
| ASSERT_TRUE(enroll_session_1); | |
| ASSERT_EQ(enroll_session_1.error(), kSessionError); | |
| enroll_session_1.End(); | |
| EXPECT_FALSE(enroll_session_1); | |
| EXPECT_TRUE(enroll_session_1.error().empty()); | |
| } | |
| TEST(SessionTest, EndInvalidSession) { | |
| const std::string kSessionError = "HW is not available"; | |
| BiometricsManager::EnrollSession enroll_session_1; | |
| enroll_session_1.set_error(kSessionError); | |
| ASSERT_FALSE(enroll_session_1); | |
| ASSERT_EQ(enroll_session_1.error(), kSessionError); | |
| enroll_session_1.End(); | |
| EXPECT_FALSE(enroll_session_1); | |
| EXPECT_TRUE(enroll_session_1.error().empty()); | |
| } | |
| } // namespace | |
| } // namespace biod |