From 258b9f6442c7d5f32087434973adf26c4d5c81c4 Mon Sep 17 00:00:00 2001 From: Melad Raouf Date: Sat, 4 Oct 2025 14:35:40 +0100 Subject: [PATCH] [MS-1194] Add support for simFace allowed age range in ProjectConfiguration --- .../orchestrator/usecases/steps/BuildStepsUseCaseTest.kt | 3 ++- .../infra/config/store/models/ProjectConfiguration.kt | 4 ++-- .../config/store/models/ProjectConfigurationTest.kt | 9 +++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/steps/BuildStepsUseCaseTest.kt b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/steps/BuildStepsUseCaseTest.kt index 12a3cb5a65..1a8ef92b86 100644 --- a/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/steps/BuildStepsUseCaseTest.kt +++ b/feature/orchestrator/src/test/java/com/simprints/feature/orchestrator/usecases/steps/BuildStepsUseCaseTest.kt @@ -52,7 +52,7 @@ class BuildStepsUseCaseTest { fun setup() { MockKAnnotations.init(this) useCase = BuildStepsUseCase(buildMatcherSubjectQuery, cache, mapStepsForLastBiometrics, fallbackToCommCareDataSourceIfNeeded) - + // Setup fallback use case to return the input actions unchanged by default coEvery { fallbackToCommCareDataSourceIfNeeded(any(), any()) } answers { firstArg() } coEvery { fallbackToCommCareDataSourceIfNeeded(any(), any()) } answers { firstArg() } @@ -87,6 +87,7 @@ class BuildStepsUseCaseTest { every { projectConfiguration.face?.allowedSDKs } returns listOf(FaceConfiguration.BioSdk.RANK_ONE) every { projectConfiguration.face?.rankOne?.nbOfImagesToCapture } returns 3 every { projectConfiguration.face?.rankOne?.allowedAgeRange } returns null + every { projectConfiguration.face?.simFace?.allowedAgeRange } returns null return projectConfiguration } diff --git a/infra/config-store/src/main/java/com/simprints/infra/config/store/models/ProjectConfiguration.kt b/infra/config-store/src/main/java/com/simprints/infra/config/store/models/ProjectConfiguration.kt index de9f8f56f2..539f550336 100644 --- a/infra/config-store/src/main/java/com/simprints/infra/config/store/models/ProjectConfiguration.kt +++ b/infra/config-store/src/main/java/com/simprints/infra/config/store/models/ProjectConfiguration.kt @@ -37,8 +37,7 @@ fun ProjectConfiguration.canSyncBiometricDataToSimprints(): Boolean = fun ProjectConfiguration.canSyncAnalyticsDataToSimprints(): Boolean = synchronization.up.simprints.kind == UpSynchronizationConfiguration.UpSynchronizationKind.ONLY_ANALYTICS -fun ProjectConfiguration.isSimprintsEventDownSyncAllowed(): Boolean = - synchronization.down.simprints != null && +fun ProjectConfiguration.isSimprintsEventDownSyncAllowed(): Boolean = synchronization.down.simprints != null && synchronization.down.simprints.frequency != Frequency.ONLY_PERIODICALLY_UP_SYNC fun ProjectConfiguration.isCommCareEventDownSyncAllowed(): Boolean = synchronization.down.commCare != null @@ -47,6 +46,7 @@ fun ProjectConfiguration.imagesUploadRequiresUnmeteredConnection(): Boolean = sy fun ProjectConfiguration.allowedAgeRanges(): List = listOfNotNull( face?.rankOne?.allowedAgeRange, + face?.simFace?.allowedAgeRange, fingerprint?.secugenSimMatcher?.allowedAgeRange, fingerprint?.nec?.allowedAgeRange, ) diff --git a/infra/config-store/src/test/java/com/simprints/infra/config/store/models/ProjectConfigurationTest.kt b/infra/config-store/src/test/java/com/simprints/infra/config/store/models/ProjectConfigurationTest.kt index 6eaaddc567..e9d303b913 100644 --- a/infra/config-store/src/test/java/com/simprints/infra/config/store/models/ProjectConfigurationTest.kt +++ b/infra/config-store/src/test/java/com/simprints/infra/config/store/models/ProjectConfigurationTest.kt @@ -232,7 +232,7 @@ class ProjectConfigurationTest { val config = projectConfiguration.copy( synchronization = synchronizationConfiguration.copy( down = synchronizationConfiguration.down.copy( - simprints = null + simprints = null, ), ), ) @@ -245,7 +245,7 @@ class ProjectConfigurationTest { val config = projectConfiguration.copy( synchronization = synchronizationConfiguration.copy( down = synchronizationConfiguration.down.copy( - commCare = DownSynchronizationConfiguration.CommCareDownSynchronizationConfiguration + commCare = DownSynchronizationConfiguration.CommCareDownSynchronizationConfiguration, ), ), ) @@ -258,7 +258,7 @@ class ProjectConfigurationTest { val config = projectConfiguration.copy( synchronization = synchronizationConfiguration.copy( down = synchronizationConfiguration.down.copy( - commCare = null + commCare = null, ), ), ) @@ -294,6 +294,7 @@ class ProjectConfigurationTest { rankOne = faceConfiguration.rankOne?.copy( allowedAgeRange = faceAgeRange, ), + simFace = null, ), fingerprint = fingerprintConfiguration.copy( secugenSimMatcher = fingerprintConfiguration.secugenSimMatcher?.copy( @@ -428,7 +429,7 @@ class ProjectConfigurationTest { AgeGroup(faceAgeRange.startInclusive, secugenSimMatcherAgeRange.startInclusive), AgeGroup(secugenSimMatcherAgeRange.startInclusive, faceAgeRange.endExclusive), AgeGroup(faceAgeRange.endExclusive!!, secugenSimMatcherAgeRange.endExclusive!!), - AgeGroup(secugenSimMatcherAgeRange.endExclusive!!, null), + AgeGroup(secugenSimMatcherAgeRange.endExclusive, null), ) assertThat(result).isEqualTo(expected)