From 18e0c2cb6bc615cd1184db0a10aeabd6ebd50422 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 30 Sep 2025 11:13:39 +0300 Subject: [PATCH 1/3] [MS-1190] Refactoring 'feature:match' module into 'infra:matching' and 'feature:match' so that match use cases become available into multiple features --- feature/matcher/build.gradle.kts | 5 +---- .../com/simprints/matcher/MatchContract.kt | 1 + .../simprints/matcher/screen/MatchFragment.kt | 2 +- .../matcher/screen/MatchViewModel.kt | 22 ++++++++++--------- .../matcher/screen/MatchViewModelTest.kt | 16 +++++++------- feature/orchestrator/build.gradle.kts | 1 + .../orchestrator/OrchestratorViewModel.kt | 2 +- .../steps/MatchStepStubPayload.kt | 2 +- .../feature/orchestrator/steps/Step.kt | 6 ++--- .../MapStepsForLastBiometricEnrolUseCase.kt | 4 ++-- .../response/CreateIdentifyResponseUseCase.kt | 4 ++-- .../response/CreateVerifyResponseUseCase.kt | 4 ++-- .../response/IsNewEnrolmentUseCase.kt | 4 ++-- infra/matching/.gitignore | 1 + infra/matching/README.md | 0 infra/matching/build.gradle.kts | 21 ++++++++++++++++++ infra/matching/src/main/AndroidManifest.xml | 4 ++++ .../infra/matching}/MatchBatchInfo.kt | 2 +- .../simprints/infra/matching}/MatchParams.kt | 2 +- .../simprints/infra/matching}/MatchResult.kt | 2 +- .../matching/usecase}/CreateRangesUseCase.kt | 4 ++-- .../matching/usecase}/FaceMatcherUseCase.kt | 12 +++++----- .../usecase}/FingerprintMatcherUseCase.kt | 14 ++++++------ .../infra/matching/usecase}/MatchResultSet.kt | 6 ++--- .../infra/matching/usecase}/MatcherUseCase.kt | 10 ++++----- .../usecase}/SaveMatchEventUseCase.kt | 10 ++++----- .../usecase}/CreateRangesUseCaseTest.kt | 2 +- .../usecase}/FaceMatcherUseCaseTest.kt | 6 ++--- .../usecase}/FingerprintMatcherUseCaseTest.kt | 4 ++-- .../matching/usecase}/MatchResultSetTest.kt | 6 ++--- .../usecase}/SaveMatchEventUseCaseTest.kt | 16 +++++--------- settings.gradle.kts | 1 + 32 files changed, 110 insertions(+), 86 deletions(-) create mode 100644 infra/matching/.gitignore create mode 100644 infra/matching/README.md create mode 100644 infra/matching/build.gradle.kts create mode 100644 infra/matching/src/main/AndroidManifest.xml rename {feature/matcher/src/main/java/com/simprints/matcher => infra/matching/src/main/java/com/simprints/infra/matching}/MatchBatchInfo.kt (86%) rename {feature/matcher/src/main/java/com/simprints/matcher => infra/matching/src/main/java/com/simprints/infra/matching}/MatchParams.kt (98%) rename {feature/matcher/src/main/java/com/simprints/matcher => infra/matching/src/main/java/com/simprints/infra/matching}/MatchResult.kt (96%) rename {feature/matcher/src/main/java/com/simprints/matcher/usecases => infra/matching/src/main/java/com/simprints/infra/matching/usecase}/CreateRangesUseCase.kt (94%) rename {feature/matcher/src/main/java/com/simprints/matcher/usecases => infra/matching/src/main/java/com/simprints/infra/matching/usecase}/FaceMatcherUseCase.kt (94%) rename {feature/matcher/src/main/java/com/simprints/matcher/usecases => infra/matching/src/main/java/com/simprints/infra/matching/usecase}/FingerprintMatcherUseCase.kt (95%) rename {feature/matcher/src/main/java/com/simprints/matcher/usecases => infra/matching/src/main/java/com/simprints/infra/matching/usecase}/MatchResultSet.kt (92%) rename {feature/matcher/src/main/java/com/simprints/matcher/usecases => infra/matching/src/main/java/com/simprints/infra/matching/usecase}/MatcherUseCase.kt (80%) rename {feature/matcher/src/main/java/com/simprints/matcher/usecases => infra/matching/src/main/java/com/simprints/infra/matching/usecase}/SaveMatchEventUseCase.kt (95%) rename {feature/matcher/src/test/java/com/simprints/matcher/usecases => infra/matching/src/test/java/com/simprints/infra/matching/usecase}/CreateRangesUseCaseTest.kt (99%) rename {feature/matcher/src/test/java/com/simprints/matcher/usecases => infra/matching/src/test/java/com/simprints/infra/matching/usecase}/FaceMatcherUseCaseTest.kt (97%) rename {feature/matcher/src/test/java/com/simprints/matcher/usecases => infra/matching/src/test/java/com/simprints/infra/matching/usecase}/FingerprintMatcherUseCaseTest.kt (98%) rename {feature/matcher/src/test/java/com/simprints/matcher/usecases => infra/matching/src/test/java/com/simprints/infra/matching/usecase}/MatchResultSetTest.kt (97%) rename {feature/matcher/src/test/java/com/simprints/matcher/usecases => infra/matching/src/test/java/com/simprints/infra/matching/usecase}/SaveMatchEventUseCaseTest.kt (97%) diff --git a/feature/matcher/build.gradle.kts b/feature/matcher/build.gradle.kts index e6a34a307d..31747c11c3 100644 --- a/feature/matcher/build.gradle.kts +++ b/feature/matcher/build.gradle.kts @@ -12,12 +12,9 @@ dependencies { implementation(project(":infra:orchestrator-data")) implementation(project(":infra:enrolment-records:repository")) - implementation(project(":infra:events")) + implementation(project(":infra:matching")) implementation(project(":infra:config-store")) implementation(project(":infra:config-sync")) - implementation(project(":face:infra:bio-sdk-resolver")) - - implementation(project(":fingerprint:infra:bio-sdk")) implementation(project(":infra:auth-store")) } diff --git a/feature/matcher/src/main/java/com/simprints/matcher/MatchContract.kt b/feature/matcher/src/main/java/com/simprints/matcher/MatchContract.kt index 9500085e9e..79efa31499 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/MatchContract.kt +++ b/feature/matcher/src/main/java/com/simprints/matcher/MatchContract.kt @@ -5,6 +5,7 @@ import com.simprints.infra.config.store.models.FaceConfiguration import com.simprints.infra.config.store.models.FingerprintConfiguration import com.simprints.infra.enrolment.records.repository.domain.models.BiometricDataSource import com.simprints.infra.enrolment.records.repository.domain.models.SubjectQuery +import com.simprints.infra.matching.MatchParams object MatchContract { val DESTINATION = R.id.matcherFragment diff --git a/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchFragment.kt b/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchFragment.kt index cb16d60914..0cde3b8112 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchFragment.kt +++ b/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchFragment.kt @@ -16,11 +16,11 @@ import com.simprints.core.tools.extentions.hasPermission import com.simprints.core.tools.extentions.permissionFromResult import com.simprints.infra.logging.LoggingConstants.CrashReportTag.ORCHESTRATION import com.simprints.infra.logging.Simber +import com.simprints.infra.matching.MatchParams import com.simprints.infra.uibase.navigation.finishWithResult import com.simprints.infra.uibase.navigation.navigationParams import com.simprints.infra.uibase.view.applySystemBarInsets import com.simprints.infra.uibase.viewbinding.viewBinding -import com.simprints.matcher.MatchParams import com.simprints.matcher.R import com.simprints.matcher.databinding.FragmentMatcherBinding import com.simprints.matcher.screen.MatchViewModel.MatchState diff --git a/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchViewModel.kt b/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchViewModel.kt index 9b5995d860..2fc45b1ef9 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchViewModel.kt +++ b/feature/matcher/src/main/java/com/simprints/matcher/screen/MatchViewModel.kt @@ -10,14 +10,14 @@ import com.simprints.core.tools.time.TimeHelper import com.simprints.infra.authstore.AuthStore import com.simprints.infra.config.store.models.DecisionPolicy import com.simprints.infra.config.sync.ConfigManager -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult -import com.simprints.matcher.MatchParams -import com.simprints.matcher.MatchResultItem -import com.simprints.matcher.usecases.FaceMatcherUseCase -import com.simprints.matcher.usecases.FingerprintMatcherUseCase -import com.simprints.matcher.usecases.MatcherUseCase -import com.simprints.matcher.usecases.SaveMatchEventUseCase +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult +import com.simprints.infra.matching.MatchParams +import com.simprints.infra.matching.MatchResultItem +import com.simprints.infra.matching.usecase.FaceMatcherUseCase +import com.simprints.infra.matching.usecase.FingerprintMatcherUseCase +import com.simprints.infra.matching.usecase.MatcherUseCase +import com.simprints.infra.matching.usecase.SaveMatchEventUseCase import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -104,9 +104,11 @@ internal class MatchViewModel @Inject constructor( private suspend fun getDecisionPolicy(params: MatchParams): DecisionPolicy { val config = configManager.getProjectConfiguration() + val faceSDK = params.faceSDK + val fingerprintSDK = params.fingerprintSDK val policy = when { - params.faceSDK != null -> config.face?.getSdkConfiguration(params.faceSDK)?.decisionPolicy - params.fingerprintSDK != null -> config.fingerprint?.getSdkConfiguration(params.fingerprintSDK)?.decisionPolicy + faceSDK != null -> config.face?.getSdkConfiguration(faceSDK)?.decisionPolicy + fingerprintSDK != null -> config.fingerprint?.getSdkConfiguration(fingerprintSDK)?.decisionPolicy else -> null } return policy ?: fallbackDecisionPolicy() diff --git a/feature/matcher/src/test/java/com/simprints/matcher/screen/MatchViewModelTest.kt b/feature/matcher/src/test/java/com/simprints/matcher/screen/MatchViewModelTest.kt index fe26281df1..7e4ffd3f99 100644 --- a/feature/matcher/src/test/java/com/simprints/matcher/screen/MatchViewModelTest.kt +++ b/feature/matcher/src/test/java/com/simprints/matcher/screen/MatchViewModelTest.kt @@ -13,14 +13,14 @@ import com.simprints.infra.config.store.models.FaceConfiguration import com.simprints.infra.config.store.models.FingerprintConfiguration.BioSdk.SECUGEN_SIM_MATCHER import com.simprints.infra.config.sync.ConfigManager import com.simprints.infra.enrolment.records.repository.domain.models.BiometricDataSource -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult -import com.simprints.matcher.MatchBatchInfo -import com.simprints.matcher.MatchParams -import com.simprints.matcher.usecases.FaceMatcherUseCase -import com.simprints.matcher.usecases.FingerprintMatcherUseCase -import com.simprints.matcher.usecases.MatcherUseCase -import com.simprints.matcher.usecases.SaveMatchEventUseCase +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult +import com.simprints.infra.matching.MatchBatchInfo +import com.simprints.infra.matching.MatchParams +import com.simprints.infra.matching.usecase.FaceMatcherUseCase +import com.simprints.infra.matching.usecase.FingerprintMatcherUseCase +import com.simprints.infra.matching.usecase.MatcherUseCase +import com.simprints.infra.matching.usecase.SaveMatchEventUseCase import com.simprints.testtools.common.coroutines.TestCoroutineRule import com.simprints.testtools.common.livedata.getOrAwaitValue import io.mockk.* diff --git a/feature/orchestrator/build.gradle.kts b/feature/orchestrator/build.gradle.kts index b84bb6dc9b..8515c2065c 100644 --- a/feature/orchestrator/build.gradle.kts +++ b/feature/orchestrator/build.gradle.kts @@ -37,6 +37,7 @@ dependencies { implementation(project(":infra:events")) implementation(project(":infra:event-sync")) implementation(project(":infra:images")) + implementation(project(":infra:matching")) implementation(libs.jackson.core) implementation(libs.androidX.ui.preference) diff --git a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorViewModel.kt b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorViewModel.kt index ef6f57f5f9..6c3d195128 100644 --- a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorViewModel.kt +++ b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/OrchestratorViewModel.kt @@ -39,10 +39,10 @@ import com.simprints.infra.config.store.models.GeneralConfiguration import com.simprints.infra.config.sync.ConfigManager import com.simprints.infra.logging.LoggingConstants.CrashReportTag.ORCHESTRATION import com.simprints.infra.logging.Simber +import com.simprints.infra.matching.MatchParams import com.simprints.infra.orchestration.data.ActionRequest import com.simprints.infra.orchestration.data.responses.AppErrorResponse import com.simprints.infra.orchestration.data.responses.AppResponse -import com.simprints.matcher.MatchParams import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch import java.io.Serializable diff --git a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/steps/MatchStepStubPayload.kt b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/steps/MatchStepStubPayload.kt index 3f5f42b978..176570381b 100644 --- a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/steps/MatchStepStubPayload.kt +++ b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/steps/MatchStepStubPayload.kt @@ -6,8 +6,8 @@ import com.simprints.infra.config.store.models.FaceConfiguration import com.simprints.infra.config.store.models.FingerprintConfiguration import com.simprints.infra.enrolment.records.repository.domain.models.BiometricDataSource import com.simprints.infra.enrolment.records.repository.domain.models.SubjectQuery +import com.simprints.infra.matching.MatchParams import com.simprints.matcher.MatchContract -import com.simprints.matcher.MatchParams /** * Actual matching step payload is based on capture step results, so until the it is done we are storing diff --git a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/steps/Step.kt b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/steps/Step.kt index cc3add88ea..097f692445 100644 --- a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/steps/Step.kt +++ b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/steps/Step.kt @@ -35,9 +35,9 @@ import com.simprints.fingerprint.connect.FingerprintConnectParams import com.simprints.fingerprint.connect.FingerprintConnectResult import com.simprints.infra.enrolment.records.repository.domain.models.BiometricDataSource import com.simprints.infra.enrolment.records.repository.domain.models.SubjectQuery -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult -import com.simprints.matcher.MatchParams +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult +import com.simprints.infra.matching.MatchParams import java.io.Serializable @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "resultType") diff --git a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/MapStepsForLastBiometricEnrolUseCase.kt b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/MapStepsForLastBiometricEnrolUseCase.kt index 21baca8249..251a2183e2 100644 --- a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/MapStepsForLastBiometricEnrolUseCase.kt +++ b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/MapStepsForLastBiometricEnrolUseCase.kt @@ -8,8 +8,8 @@ import com.simprints.feature.enrollast.FingerTemplateCaptureResult import com.simprints.feature.enrollast.MatchResult import com.simprints.fingerprint.capture.FingerprintCaptureResult import com.simprints.infra.config.store.models.fromModuleApiToDomain -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult import java.io.Serializable import javax.inject.Inject diff --git a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt index 5754c93eaf..8b6d7a42c4 100644 --- a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt +++ b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCase.kt @@ -5,8 +5,8 @@ import com.simprints.infra.events.session.SessionEventRepository import com.simprints.infra.orchestration.data.responses.AppIdentifyResponse import com.simprints.infra.orchestration.data.responses.AppMatchResult import com.simprints.infra.orchestration.data.responses.AppResponse -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult import java.io.Serializable import javax.inject.Inject diff --git a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateVerifyResponseUseCase.kt b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateVerifyResponseUseCase.kt index 200f79f82d..9ceb8ea8ba 100644 --- a/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateVerifyResponseUseCase.kt +++ b/feature/orchestrator/src/main/java/com/simprints/feature/orchestrator/usecases/response/CreateVerifyResponseUseCase.kt @@ -8,8 +8,8 @@ import com.simprints.infra.orchestration.data.responses.AppErrorResponse import com.simprints.infra.orchestration.data.responses.AppMatchResult import com.simprints.infra.orchestration.data.responses.AppResponse import com.simprints.infra.orchestration.data.responses.AppVerifyResponse -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult import java.io.Serializable import javax.inject.Inject 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 9316714d30..2993c22a21 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 @@ -1,8 +1,8 @@ package com.simprints.feature.orchestrator.usecases.response import com.simprints.infra.config.store.models.ProjectConfiguration -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult import java.io.Serializable import javax.inject.Inject import kotlin.text.compareTo diff --git a/infra/matching/.gitignore b/infra/matching/.gitignore new file mode 100644 index 0000000000..796b96d1c4 --- /dev/null +++ b/infra/matching/.gitignore @@ -0,0 +1 @@ +/build diff --git a/infra/matching/README.md b/infra/matching/README.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/infra/matching/build.gradle.kts b/infra/matching/build.gradle.kts new file mode 100644 index 0000000000..6d93bcfa4c --- /dev/null +++ b/infra/matching/build.gradle.kts @@ -0,0 +1,21 @@ +plugins { + id("simprints.feature") +} + +android { + namespace = "com.simprints.infra.mathching" +} + +dependencies { + + implementation(project(":infra:orchestrator-data")) + implementation(project(":infra:enrolment-records:repository")) + implementation(project(":infra:events")) + implementation(project(":infra:config-store")) + implementation(project(":infra:config-sync")) + + implementation(project(":face:infra:bio-sdk-resolver")) + + implementation(project(":fingerprint:infra:bio-sdk")) + implementation(project(":infra:auth-store")) +} diff --git a/infra/matching/src/main/AndroidManifest.xml b/infra/matching/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..e100076157 --- /dev/null +++ b/infra/matching/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/feature/matcher/src/main/java/com/simprints/matcher/MatchBatchInfo.kt b/infra/matching/src/main/java/com/simprints/infra/matching/MatchBatchInfo.kt similarity index 86% rename from feature/matcher/src/main/java/com/simprints/matcher/MatchBatchInfo.kt rename to infra/matching/src/main/java/com/simprints/infra/matching/MatchBatchInfo.kt index 1255722ed8..41ade6ca98 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/MatchBatchInfo.kt +++ b/infra/matching/src/main/java/com/simprints/infra/matching/MatchBatchInfo.kt @@ -1,4 +1,4 @@ -package com.simprints.matcher +package com.simprints.infra.matching import com.simprints.core.tools.time.Timestamp diff --git a/feature/matcher/src/main/java/com/simprints/matcher/MatchParams.kt b/infra/matching/src/main/java/com/simprints/infra/matching/MatchParams.kt similarity index 98% rename from feature/matcher/src/main/java/com/simprints/matcher/MatchParams.kt rename to infra/matching/src/main/java/com/simprints/infra/matching/MatchParams.kt index 56df8746ba..5d32f1b864 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/MatchParams.kt +++ b/infra/matching/src/main/java/com/simprints/infra/matching/MatchParams.kt @@ -1,4 +1,4 @@ -package com.simprints.matcher +package com.simprints.infra.matching import androidx.annotation.Keep import com.simprints.core.domain.common.FlowType diff --git a/feature/matcher/src/main/java/com/simprints/matcher/MatchResult.kt b/infra/matching/src/main/java/com/simprints/infra/matching/MatchResult.kt similarity index 96% rename from feature/matcher/src/main/java/com/simprints/matcher/MatchResult.kt rename to infra/matching/src/main/java/com/simprints/infra/matching/MatchResult.kt index 17748a9494..6cf595c3eb 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/MatchResult.kt +++ b/infra/matching/src/main/java/com/simprints/infra/matching/MatchResult.kt @@ -1,4 +1,4 @@ -package com.simprints.matcher +package com.simprints.infra.matching import androidx.annotation.Keep import com.simprints.core.domain.step.StepResult diff --git a/feature/matcher/src/main/java/com/simprints/matcher/usecases/CreateRangesUseCase.kt b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/CreateRangesUseCase.kt similarity index 94% rename from feature/matcher/src/main/java/com/simprints/matcher/usecases/CreateRangesUseCase.kt rename to infra/matching/src/main/java/com/simprints/infra/matching/usecase/CreateRangesUseCase.kt index dd1ed5f129..ffc6f68db6 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/usecases/CreateRangesUseCase.kt +++ b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/CreateRangesUseCase.kt @@ -1,10 +1,10 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase import com.simprints.core.AvailableProcessors import javax.inject.Inject import kotlin.math.ceil -internal class CreateRangesUseCase @Inject constructor( +class CreateRangesUseCase @Inject constructor( @AvailableProcessors private val availableProcessors: Int, ) { /** diff --git a/feature/matcher/src/main/java/com/simprints/matcher/usecases/FaceMatcherUseCase.kt b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/FaceMatcherUseCase.kt similarity index 94% rename from feature/matcher/src/main/java/com/simprints/matcher/usecases/FaceMatcherUseCase.kt rename to infra/matching/src/main/java/com/simprints/infra/matching/usecase/FaceMatcherUseCase.kt index b48b050260..227e4de282 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/usecases/FaceMatcherUseCase.kt +++ b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/FaceMatcherUseCase.kt @@ -1,4 +1,4 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase import com.simprints.core.DispatcherBG import com.simprints.core.tools.time.TimeHelper @@ -12,10 +12,10 @@ import com.simprints.infra.enrolment.records.repository.EnrolmentRecordRepositor import com.simprints.infra.enrolment.records.repository.domain.models.IdentityBatch import com.simprints.infra.logging.LoggingConstants import com.simprints.infra.logging.Simber -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.MatchBatchInfo -import com.simprints.matcher.MatchParams -import com.simprints.matcher.usecases.MatcherUseCase.MatcherState +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.MatchBatchInfo +import com.simprints.infra.matching.MatchParams +import com.simprints.infra.matching.usecase.MatcherUseCase.MatcherState import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.channels.ReceiveChannel import kotlinx.coroutines.flow.Flow @@ -25,7 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger import javax.inject.Inject import com.simprints.infra.enrolment.records.repository.domain.models.FaceIdentity as DomainFaceIdentity -internal class FaceMatcherUseCase @Inject constructor( +class FaceMatcherUseCase @Inject constructor( private val timeHelper: TimeHelper, private val enrolmentRecordRepository: EnrolmentRecordRepository, private val resolveFaceBioSdk: ResolveFaceBioSdkUseCase, diff --git a/feature/matcher/src/main/java/com/simprints/matcher/usecases/FingerprintMatcherUseCase.kt b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/FingerprintMatcherUseCase.kt similarity index 95% rename from feature/matcher/src/main/java/com/simprints/matcher/usecases/FingerprintMatcherUseCase.kt rename to infra/matching/src/main/java/com/simprints/infra/matching/usecase/FingerprintMatcherUseCase.kt index a6a4bdc93d..4c866c59cd 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/usecases/FingerprintMatcherUseCase.kt +++ b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/FingerprintMatcherUseCase.kt @@ -1,4 +1,4 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase import com.simprints.core.DispatcherBG import com.simprints.core.domain.common.FlowType @@ -17,10 +17,10 @@ import com.simprints.infra.enrolment.records.repository.EnrolmentRecordRepositor import com.simprints.infra.enrolment.records.repository.domain.models.IdentityBatch import com.simprints.infra.logging.LoggingConstants import com.simprints.infra.logging.Simber -import com.simprints.matcher.FingerprintMatchResult -import com.simprints.matcher.MatchBatchInfo -import com.simprints.matcher.MatchParams -import com.simprints.matcher.usecases.MatcherUseCase.MatcherState +import com.simprints.infra.matching.FingerprintMatchResult +import com.simprints.infra.matching.MatchBatchInfo +import com.simprints.infra.matching.MatchParams +import com.simprints.infra.matching.usecase.MatcherUseCase.MatcherState import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.channels.ReceiveChannel import kotlinx.coroutines.flow.Flow @@ -30,7 +30,7 @@ import java.util.concurrent.atomic.AtomicInteger import javax.inject.Inject import com.simprints.infra.enrolment.records.repository.domain.models.FingerprintIdentity as DomainFingerprintIdentity -internal class FingerprintMatcherUseCase @Inject constructor( +class FingerprintMatcherUseCase @Inject constructor( private val timeHelper: TimeHelper, private val enrolmentRecordRepository: EnrolmentRecordRepository, private val resolveBioSdkWrapper: ResolveBioSdkWrapperUseCase, @@ -64,7 +64,7 @@ internal class FingerprintMatcherUseCase @Inject constructor( ) val expectedCandidates = enrolmentRecordRepository.count(queryWithSupportedFormat, dataSource = matchParams.biometricDataSource) if (expectedCandidates == 0) { - send(MatcherState.Success(emptyList(), emptyList(), 0, bioSdkWrapper.matcherName)) + send(MatcherState.Success(emptyList(), emptyList(), 0, bioSdkWrapper.matcherName)) return@channelFlow } diff --git a/feature/matcher/src/main/java/com/simprints/matcher/usecases/MatchResultSet.kt b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/MatchResultSet.kt similarity index 92% rename from feature/matcher/src/main/java/com/simprints/matcher/usecases/MatchResultSet.kt rename to infra/matching/src/main/java/com/simprints/infra/matching/usecase/MatchResultSet.kt index 928d028397..f0129ff06f 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/usecases/MatchResultSet.kt +++ b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/MatchResultSet.kt @@ -1,12 +1,12 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase -import com.simprints.matcher.MatchResultItem +import com.simprints.infra.matching.MatchResultItem import java.util.concurrent.ConcurrentSkipListSet import java.util.concurrent.atomic.AtomicReference import java.util.concurrent.locks.ReentrantLock import kotlin.concurrent.withLock -internal class MatchResultSet( +class MatchResultSet( private val maxSize: Int = MAX_RESULTS, ) { private val lowestConfidence = AtomicReference(0f) diff --git a/feature/matcher/src/main/java/com/simprints/matcher/usecases/MatcherUseCase.kt b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/MatcherUseCase.kt similarity index 80% rename from feature/matcher/src/main/java/com/simprints/matcher/usecases/MatcherUseCase.kt rename to infra/matching/src/main/java/com/simprints/infra/matching/usecase/MatcherUseCase.kt index 0633a13940..061a39fc4c 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/usecases/MatcherUseCase.kt +++ b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/MatcherUseCase.kt @@ -1,13 +1,13 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase import com.simprints.infra.config.store.models.Project import com.simprints.infra.logging.LoggingConstants -import com.simprints.matcher.MatchBatchInfo -import com.simprints.matcher.MatchParams -import com.simprints.matcher.MatchResultItem +import com.simprints.infra.matching.MatchBatchInfo +import com.simprints.infra.matching.MatchParams +import com.simprints.infra.matching.MatchResultItem import kotlinx.coroutines.flow.Flow -internal interface MatcherUseCase { +interface MatcherUseCase { val crashReportTag: LoggingConstants.CrashReportTag /** diff --git a/feature/matcher/src/main/java/com/simprints/matcher/usecases/SaveMatchEventUseCase.kt b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/SaveMatchEventUseCase.kt similarity index 95% rename from feature/matcher/src/main/java/com/simprints/matcher/usecases/SaveMatchEventUseCase.kt rename to infra/matching/src/main/java/com/simprints/infra/matching/usecase/SaveMatchEventUseCase.kt index ee20206b99..b223d97f03 100644 --- a/feature/matcher/src/main/java/com/simprints/matcher/usecases/SaveMatchEventUseCase.kt +++ b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/SaveMatchEventUseCase.kt @@ -1,4 +1,4 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase import com.simprints.core.SessionCoroutineScope import com.simprints.core.domain.common.FlowType @@ -11,15 +11,15 @@ import com.simprints.infra.events.event.domain.models.MatchEntry import com.simprints.infra.events.event.domain.models.OneToManyMatchEvent import com.simprints.infra.events.event.domain.models.OneToOneMatchEvent import com.simprints.infra.events.session.SessionEventRepository -import com.simprints.matcher.MatchBatchInfo -import com.simprints.matcher.MatchParams -import com.simprints.matcher.MatchResultItem +import com.simprints.infra.matching.MatchBatchInfo +import com.simprints.infra.matching.MatchParams +import com.simprints.infra.matching.MatchResultItem import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import javax.inject.Inject import com.simprints.infra.config.store.models.FingerprintConfiguration.FingerComparisonStrategy as ConfigFingerComparisonStrategy -internal class SaveMatchEventUseCase @Inject constructor( +class SaveMatchEventUseCase @Inject constructor( private val eventRepository: SessionEventRepository, private val configManager: ConfigManager, @SessionCoroutineScope private val sessionCoroutineScope: CoroutineScope, diff --git a/feature/matcher/src/test/java/com/simprints/matcher/usecases/CreateRangesUseCaseTest.kt b/infra/matching/src/test/java/com/simprints/infra/matching/usecase/CreateRangesUseCaseTest.kt similarity index 99% rename from feature/matcher/src/test/java/com/simprints/matcher/usecases/CreateRangesUseCaseTest.kt rename to infra/matching/src/test/java/com/simprints/infra/matching/usecase/CreateRangesUseCaseTest.kt index e0b73d2a98..594e6329c8 100644 --- a/feature/matcher/src/test/java/com/simprints/matcher/usecases/CreateRangesUseCaseTest.kt +++ b/infra/matching/src/test/java/com/simprints/infra/matching/usecase/CreateRangesUseCaseTest.kt @@ -1,4 +1,4 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase import com.google.common.truth.Truth.assertThat import org.junit.Test diff --git a/feature/matcher/src/test/java/com/simprints/matcher/usecases/FaceMatcherUseCaseTest.kt b/infra/matching/src/test/java/com/simprints/infra/matching/usecase/FaceMatcherUseCaseTest.kt similarity index 97% rename from feature/matcher/src/test/java/com/simprints/matcher/usecases/FaceMatcherUseCaseTest.kt rename to infra/matching/src/test/java/com/simprints/infra/matching/usecase/FaceMatcherUseCaseTest.kt index aaae5e3212..941c902404 100644 --- a/feature/matcher/src/test/java/com/simprints/matcher/usecases/FaceMatcherUseCaseTest.kt +++ b/infra/matching/src/test/java/com/simprints/infra/matching/usecase/FaceMatcherUseCaseTest.kt @@ -1,4 +1,4 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase import androidx.arch.core.executor.testing.InstantTaskExecutorRule import com.google.common.truth.Truth.* @@ -13,8 +13,8 @@ import com.simprints.infra.enrolment.records.repository.EnrolmentRecordRepositor import com.simprints.infra.enrolment.records.repository.domain.models.BiometricDataSource import com.simprints.infra.enrolment.records.repository.domain.models.FaceIdentity import com.simprints.infra.enrolment.records.repository.domain.models.SubjectQuery -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.MatchParams +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.MatchParams import com.simprints.testtools.common.coroutines.TestCoroutineRule import io.mockk.* import io.mockk.impl.annotations.MockK diff --git a/feature/matcher/src/test/java/com/simprints/matcher/usecases/FingerprintMatcherUseCaseTest.kt b/infra/matching/src/test/java/com/simprints/infra/matching/usecase/FingerprintMatcherUseCaseTest.kt similarity index 98% rename from feature/matcher/src/test/java/com/simprints/matcher/usecases/FingerprintMatcherUseCaseTest.kt rename to infra/matching/src/test/java/com/simprints/infra/matching/usecase/FingerprintMatcherUseCaseTest.kt index f59f4a05a9..f11bfacf83 100644 --- a/feature/matcher/src/test/java/com/simprints/matcher/usecases/FingerprintMatcherUseCaseTest.kt +++ b/infra/matching/src/test/java/com/simprints/infra/matching/usecase/FingerprintMatcherUseCaseTest.kt @@ -1,4 +1,4 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase import androidx.arch.core.executor.testing.InstantTaskExecutorRule import com.google.common.truth.Truth.* @@ -17,7 +17,7 @@ import com.simprints.infra.enrolment.records.repository.domain.models.BiometricD import com.simprints.infra.enrolment.records.repository.domain.models.FingerprintIdentity import com.simprints.infra.enrolment.records.repository.domain.models.IdentityBatch import com.simprints.infra.enrolment.records.repository.domain.models.SubjectQuery -import com.simprints.matcher.MatchParams +import com.simprints.infra.matching.MatchParams import com.simprints.testtools.common.coroutines.TestCoroutineRule import io.mockk.* import io.mockk.impl.annotations.MockK diff --git a/feature/matcher/src/test/java/com/simprints/matcher/usecases/MatchResultSetTest.kt b/infra/matching/src/test/java/com/simprints/infra/matching/usecase/MatchResultSetTest.kt similarity index 97% rename from feature/matcher/src/test/java/com/simprints/matcher/usecases/MatchResultSetTest.kt rename to infra/matching/src/test/java/com/simprints/infra/matching/usecase/MatchResultSetTest.kt index ef37f711e7..3a89c730b3 100644 --- a/feature/matcher/src/test/java/com/simprints/matcher/usecases/MatchResultSetTest.kt +++ b/infra/matching/src/test/java/com/simprints/infra/matching/usecase/MatchResultSetTest.kt @@ -1,7 +1,7 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase -import com.google.common.truth.Truth.assertThat -import com.simprints.matcher.FingerprintMatchResult +import com.google.common.truth.Truth.* +import com.simprints.infra.matching.FingerprintMatchResult import org.junit.Test import java.util.concurrent.CountDownLatch import java.util.concurrent.Executors diff --git a/feature/matcher/src/test/java/com/simprints/matcher/usecases/SaveMatchEventUseCaseTest.kt b/infra/matching/src/test/java/com/simprints/infra/matching/usecase/SaveMatchEventUseCaseTest.kt similarity index 97% rename from feature/matcher/src/test/java/com/simprints/matcher/usecases/SaveMatchEventUseCaseTest.kt rename to infra/matching/src/test/java/com/simprints/infra/matching/usecase/SaveMatchEventUseCaseTest.kt index dd27c90068..ae84096e7c 100644 --- a/feature/matcher/src/test/java/com/simprints/matcher/usecases/SaveMatchEventUseCaseTest.kt +++ b/infra/matching/src/test/java/com/simprints/infra/matching/usecase/SaveMatchEventUseCaseTest.kt @@ -1,6 +1,6 @@ -package com.simprints.matcher.usecases +package com.simprints.infra.matching.usecase -import com.google.common.truth.Truth.assertThat +import com.google.common.truth.Truth.* import com.simprints.core.domain.common.FlowType import com.simprints.core.domain.fingerprint.IFingerIdentifier import com.simprints.core.domain.tokenization.asTokenizableEncrypted @@ -15,16 +15,12 @@ import com.simprints.infra.events.event.domain.models.OneToManyMatchEvent.OneToM import com.simprints.infra.events.event.domain.models.OneToOneMatchEvent import com.simprints.infra.events.event.domain.models.OneToOneMatchEvent.OneToOneMatchPayload.OneToOneMatchPayloadV4 import com.simprints.infra.events.session.SessionEventRepository -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.MatchParams -import com.simprints.matcher.MatchBatchInfo +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.MatchBatchInfo +import com.simprints.infra.matching.MatchParams import com.simprints.testtools.common.coroutines.TestCoroutineRule -import io.mockk.MockKAnnotations -import io.mockk.Runs -import io.mockk.coEvery -import io.mockk.coVerify +import io.mockk.* import io.mockk.impl.annotations.MockK -import io.mockk.just import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.test.runTest import org.junit.Before diff --git a/settings.gradle.kts b/settings.gradle.kts index a4fd410e7e..b827c4b8ee 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -140,6 +140,7 @@ include( ":infra:license", ":infra:logging", ":infra:logging-persistent", + ":infra:matching", ":infra:auth-store", ":infra:auth-logic", ":infra:network", From 22f4ff4464d27795e1aeb93505541db22e0fb495 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 30 Sep 2025 12:49:58 +0300 Subject: [PATCH 2/3] [MS-1190] Fixing tests and formatting --- .../feature/orchestrator/OrchestratorViewModelTest.kt | 2 +- .../MapStepsForLastBiometricEnrolUseCaseTest.kt | 4 ++-- .../response/CreateIdentifyResponseUseCaseTest.kt | 4 ++-- .../response/CreateVerifyResponseUseCaseTest.kt | 4 ++-- .../usecases/response/IsNewEnrolmentUseCaseTest.kt | 10 ++++------ .../matching/usecase/FingerprintMatcherUseCase.kt | 2 +- 6 files changed, 12 insertions(+), 14 deletions(-) diff --git a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/OrchestratorViewModelTest.kt b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/OrchestratorViewModelTest.kt index 4038614599..3d41306ee2 100644 --- a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/OrchestratorViewModelTest.kt +++ b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/OrchestratorViewModelTest.kt @@ -37,8 +37,8 @@ import com.simprints.infra.config.store.models.GeneralConfiguration import com.simprints.infra.config.sync.ConfigManager import com.simprints.infra.enrolment.records.repository.domain.models.BiometricDataSource import com.simprints.infra.enrolment.records.repository.domain.models.SubjectQuery +import com.simprints.infra.matching.MatchParams import com.simprints.infra.orchestration.data.responses.AppErrorResponse -import com.simprints.matcher.MatchParams import com.simprints.testtools.common.coroutines.TestCoroutineRule import io.mockk.MockKAnnotations import io.mockk.clearMocks diff --git a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/MapStepsForLastBiometricEnrolUseCaseTest.kt b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/MapStepsForLastBiometricEnrolUseCaseTest.kt index 24ce04a8c3..08fa5e8d11 100644 --- a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/MapStepsForLastBiometricEnrolUseCaseTest.kt +++ b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/MapStepsForLastBiometricEnrolUseCaseTest.kt @@ -12,8 +12,8 @@ import com.simprints.infra.config.store.models.FaceConfiguration import com.simprints.infra.config.store.models.Finger import com.simprints.infra.config.store.models.FingerprintConfiguration import com.simprints.infra.events.sampledata.SampleDefaults.GUID1 -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult import org.junit.Before import org.junit.Test diff --git a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt index 5e34c5b0ea..47717fce77 100644 --- a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt +++ b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateIdentifyResponseUseCaseTest.kt @@ -6,8 +6,8 @@ import com.simprints.infra.config.store.models.FaceConfiguration import com.simprints.infra.config.store.models.FingerprintConfiguration import com.simprints.infra.events.session.SessionEventRepository import com.simprints.infra.orchestration.data.responses.AppIdentifyResponse -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult import io.mockk.MockKAnnotations import io.mockk.coEvery import io.mockk.every diff --git a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateVerifyResponseUseCaseTest.kt b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateVerifyResponseUseCaseTest.kt index ecfa5bf937..b83cb332f7 100644 --- a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateVerifyResponseUseCaseTest.kt +++ b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/response/CreateVerifyResponseUseCaseTest.kt @@ -4,8 +4,8 @@ import com.google.common.truth.Truth.* import com.simprints.infra.config.store.models.DecisionPolicy import com.simprints.infra.orchestration.data.responses.AppErrorResponse import com.simprints.infra.orchestration.data.responses.AppVerifyResponse -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult import io.mockk.* import org.junit.Before import org.junit.Test 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 49eed8295b..72a334f078 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 @@ -1,15 +1,13 @@ package com.simprints.feature.orchestrator.usecases.response -import com.google.common.truth.Truth.assertThat +import com.google.common.truth.Truth.* import com.simprints.infra.config.store.models.DecisionPolicy import com.simprints.infra.config.store.models.FaceConfiguration import com.simprints.infra.config.store.models.ProjectConfiguration -import com.simprints.matcher.FaceMatchResult -import com.simprints.matcher.FingerprintMatchResult -import io.mockk.MockKAnnotations -import io.mockk.every +import com.simprints.infra.matching.FaceMatchResult +import com.simprints.infra.matching.FingerprintMatchResult +import io.mockk.* import io.mockk.impl.annotations.MockK -import io.mockk.mockk import org.junit.Before import org.junit.Test diff --git a/infra/matching/src/main/java/com/simprints/infra/matching/usecase/FingerprintMatcherUseCase.kt b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/FingerprintMatcherUseCase.kt index 4c866c59cd..0a48bbc1c1 100644 --- a/infra/matching/src/main/java/com/simprints/infra/matching/usecase/FingerprintMatcherUseCase.kt +++ b/infra/matching/src/main/java/com/simprints/infra/matching/usecase/FingerprintMatcherUseCase.kt @@ -64,7 +64,7 @@ class FingerprintMatcherUseCase @Inject constructor( ) val expectedCandidates = enrolmentRecordRepository.count(queryWithSupportedFormat, dataSource = matchParams.biometricDataSource) if (expectedCandidates == 0) { - send(MatcherState.Success(emptyList(), emptyList(), 0, bioSdkWrapper.matcherName)) + send(MatcherState.Success(emptyList(), emptyList(), 0, bioSdkWrapper.matcherName)) return@channelFlow } From d2019a3b0a6266b4fd30350550e721cc409a6252 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 30 Sep 2025 13:21:23 +0300 Subject: [PATCH 3/3] [MS-1190] Updating pr-check.yml to include `infra:matching` --- .github/workflows/pr-checks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index 54e8e0fde3..b9a72b2466 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -51,6 +51,7 @@ jobs: infra:images infra:auth-store infra:auth-logic + infra:matching reportsId: infra2 feature-unit-tests1: