From e108666b6648c3d2ce835cd9518450163e433e0d Mon Sep 17 00:00:00 2001 From: Marinov Date: Tue, 28 Jul 2026 18:47:37 +0300 Subject: [PATCH] [MS-1519] Consolidate the two isValidGuid() functions into one --- .../feature/clientapi/ClientApiViewModel.kt | 2 +- ...esetExternalCredentialsInSessionUseCase.kt | 2 +- .../screen/SelectSubjectViewModel.kt | 2 +- .../core/tools/extentions/String.ext.kt | 10 ------ .../core/tools/extentions/StringExtTest.kt | 15 -------- .../core/tools/utils/StringUtilsTest.kt | 36 +++++++++++++++++++ 6 files changed, 39 insertions(+), 28 deletions(-) delete mode 100644 infra/core/src/main/java/com/simprints/core/tools/extentions/String.ext.kt delete mode 100644 infra/core/src/test/java/com/simprints/core/tools/extentions/StringExtTest.kt create mode 100644 infra/core/src/test/java/com/simprints/core/tools/utils/StringUtilsTest.kt diff --git a/feature/client-api/src/main/java/com/simprints/feature/clientapi/ClientApiViewModel.kt b/feature/client-api/src/main/java/com/simprints/feature/clientapi/ClientApiViewModel.kt index 3ea57cd203..bf58fc8537 100644 --- a/feature/client-api/src/main/java/com/simprints/feature/clientapi/ClientApiViewModel.kt +++ b/feature/client-api/src/main/java/com/simprints/feature/clientapi/ClientApiViewModel.kt @@ -8,9 +8,9 @@ import androidx.lifecycle.viewModelScope import com.simprints.core.livedata.LiveDataEvent import com.simprints.core.livedata.LiveDataEventWithContent import com.simprints.core.livedata.send -import com.simprints.core.tools.extentions.isValidGuid import com.simprints.core.tools.extentions.toJsonElementMap import com.simprints.core.tools.time.TimeHelper +import com.simprints.core.tools.utils.isValidGuid import com.simprints.feature.clientapi.exceptions.InvalidRequestException import com.simprints.feature.clientapi.extensions.toMap import com.simprints.feature.clientapi.mappers.request.IntentToActionMapper diff --git a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/usecase/ResetExternalCredentialsInSessionUseCase.kt b/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/usecase/ResetExternalCredentialsInSessionUseCase.kt index 7ca039ccf9..9e06861de1 100644 --- a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/usecase/ResetExternalCredentialsInSessionUseCase.kt +++ b/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/usecase/ResetExternalCredentialsInSessionUseCase.kt @@ -1,7 +1,7 @@ package com.simprints.feature.externalcredential.usecase import com.simprints.core.SessionCoroutineScope -import com.simprints.core.tools.extentions.isValidGuid +import com.simprints.core.tools.utils.isValidGuid import com.simprints.feature.externalcredential.ExternalCredentialMapper import com.simprints.feature.externalcredential.ExternalCredentialSearchResult import com.simprints.infra.config.store.ConfigRepository diff --git a/feature/select-subject/src/main/java/com/simprints/feature/selectsubject/screen/SelectSubjectViewModel.kt b/feature/select-subject/src/main/java/com/simprints/feature/selectsubject/screen/SelectSubjectViewModel.kt index fb8b9a4dae..4e45b05372 100644 --- a/feature/select-subject/src/main/java/com/simprints/feature/selectsubject/screen/SelectSubjectViewModel.kt +++ b/feature/select-subject/src/main/java/com/simprints/feature/selectsubject/screen/SelectSubjectViewModel.kt @@ -8,8 +8,8 @@ import com.simprints.core.SessionCoroutineScope import com.simprints.core.domain.tokenization.TokenizableString import com.simprints.core.livedata.LiveDataEventWithContent import com.simprints.core.livedata.send -import com.simprints.core.tools.extentions.isValidGuid import com.simprints.core.tools.time.TimeHelper +import com.simprints.core.tools.utils.isValidGuid import com.simprints.feature.externalcredential.ExternalCredentialSearchResult import com.simprints.feature.externalcredential.usecase.ResetExternalCredentialsInSessionUseCase import com.simprints.feature.selectsubject.SelectSubjectParams diff --git a/infra/core/src/main/java/com/simprints/core/tools/extentions/String.ext.kt b/infra/core/src/main/java/com/simprints/core/tools/extentions/String.ext.kt deleted file mode 100644 index 0581bfff27..0000000000 --- a/infra/core/src/main/java/com/simprints/core/tools/extentions/String.ext.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.simprints.core.tools.extentions - -import java.util.UUID - -fun String.isValidGuid() = try { - UUID.fromString(this) - true -} catch (_: IllegalArgumentException) { - false -} diff --git a/infra/core/src/test/java/com/simprints/core/tools/extentions/StringExtTest.kt b/infra/core/src/test/java/com/simprints/core/tools/extentions/StringExtTest.kt deleted file mode 100644 index 2fca5541c8..0000000000 --- a/infra/core/src/test/java/com/simprints/core/tools/extentions/StringExtTest.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.simprints.core.tools.extentions - -import com.google.common.truth.Truth.assertThat -import org.junit.Test - -class StringExtTest { - @Test - fun `Is valid UUID`() { - assertThat("".isValidGuid()).isFalse() - assertThat("test".isValidGuid()).isFalse() - - assertThat("63d26965-e68c-447c-9ee9-5aba2ebf589c".isValidGuid()).isTrue() - assertThat("85500708-52D9-4A06-855F-391469E5C220".isValidGuid()).isTrue() - } -} diff --git a/infra/core/src/test/java/com/simprints/core/tools/utils/StringUtilsTest.kt b/infra/core/src/test/java/com/simprints/core/tools/utils/StringUtilsTest.kt new file mode 100644 index 0000000000..1ec31ce377 --- /dev/null +++ b/infra/core/src/test/java/com/simprints/core/tools/utils/StringUtilsTest.kt @@ -0,0 +1,36 @@ +package com.simprints.core.tools.utils + +import com.google.common.truth.Truth.assertThat +import org.junit.Test + +class StringUtilsTest { + @Test + fun `Is valid UUID`() { + assertThat("".isValidGuid()).isFalse() + assertThat("test".isValidGuid()).isFalse() + + assertThat("63d26965-e68c-447c-9ee9-5aba2ebf589c".isValidGuid()).isTrue() + assertThat("85500708-52D9-4A06-855F-391469E5C220".isValidGuid()).isTrue() + } + + @Test + fun `Is not valid UUID when malformed`() { + assertThat("1-1-1-1-1".isValidGuid()).isFalse() + assertThat("63d26965-e68c-447c-9ee9-5aba2ebf589".isValidGuid()).isFalse() + assertThat(" 63d26965-e68c-447c-9ee9-5aba2ebf589c ".isValidGuid()).isFalse() + assertThat("63d26965e68c447c9ee95aba2ebf589c".isValidGuid()).isFalse() + } + + @Test + fun `Is not valid UUID when version or variant is not supported`() { + // Only versions 3 and 4 with RFC 4122 variants are accepted + assertThat("0003eaf0-9044-6ead-fd6e-600d1b616ba5".isValidGuid()).isFalse() + assertThat("123e4567-e89b-12d3-a456-426614174000".isValidGuid()).isFalse() + assertThat("b2f3e4c5-6789-4fab-cdef-2345678901bc".isValidGuid()).isFalse() + } + + @Test + fun `randomUUID generates valid UUID`() { + assertThat(randomUUID().isValidGuid()).isTrue() + } +}