From 20cc467b79168d85eaabc86c01ec5eedbdfab7dd Mon Sep 17 00:00:00 2001 From: Sergejs Luhmirins Date: Mon, 22 Dec 2025 17:01:49 +0200 Subject: [PATCH] Fix new enrolment check in cases when match result is empty --- .../usecases/response/IsNewEnrolmentUseCase.kt | 4 ++-- .../response/IsNewEnrolmentUseCaseTest.kt | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/IsNewEnrolmentUseCase.kt b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/IsNewEnrolmentUseCase.kt index 615b977d02..b5b0aa97b2 100644 --- a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/IsNewEnrolmentUseCase.kt +++ b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/IsNewEnrolmentUseCase.kt @@ -43,10 +43,10 @@ internal class IsNewEnrolmentUseCase @Inject constructor() { private fun isResultBelowMediumThreshold( projectConfiguration: ProjectConfiguration, matchResult: MatchResult, - ): Boolean = projectConfiguration + ): Boolean = matchResult.results.isEmpty() || projectConfiguration .getModalitySdkConfig(matchResult.sdk) ?.decisionPolicy ?.medium ?.toFloat() - ?.let { threshold -> matchResult.results.isNotEmpty() && matchResult.results.all { it.comparisonScore < threshold } } != false + ?.let { threshold -> matchResult.results.all { it.comparisonScore < threshold } } != false } diff --git a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/IsNewEnrolmentUseCaseTest.kt b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/IsNewEnrolmentUseCaseTest.kt index eb5a27b837..0ce9c184d1 100644 --- a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/IsNewEnrolmentUseCaseTest.kt +++ b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/IsNewEnrolmentUseCaseTest.kt @@ -44,6 +44,23 @@ internal class IsNewEnrolmentUseCaseTest { assertThat(useCase(projectConfiguration, listOf())).isTrue() } + @Test + fun `Results are new enrolment if all match result is empty`() { + every { projectConfiguration.general.duplicateBiometricEnrolmentCheck } returns true + + assertThat( + useCase( + projectConfiguration, + listOf( + MatchResult( + listOf(), + FingerprintConfiguration.BioSdk.SECUGEN_SIM_MATCHER, + ), + ), + ), + ).isTrue() + } + @Test fun `Results are new enrolment if fingerprint match results are of lower then medium confidence`() { every { projectConfiguration.general.duplicateBiometricEnrolmentCheck } returns true