From 0a3377d98a3c8ee4a9cff11e8abcc1040b7b1490 Mon Sep 17 00:00:00 2001 From: Brian Yencho Date: Fri, 5 Jan 2024 18:36:57 -0600 Subject: [PATCH] Consolidate Environment(UrlDataJson)Extensions files in data layer (#509) --- .../repository/util/EnvironmentExtensions.kt | 21 ----- .../util/EnvironmentUrlDataJsonExtensions.kt | 17 ++++ .../repository/EnvironmentRepositoryTest.kt | 2 +- .../util/EnvironmentExtensionsTest.kt | 86 ------------------- .../EnvironmentUrlsDataJsonExtensionsTest.kt | 78 +++++++++++++++++ 5 files changed, 96 insertions(+), 108 deletions(-) delete mode 100644 app/src/main/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentExtensions.kt delete mode 100644 app/src/test/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentExtensionsTest.kt diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentExtensions.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentExtensions.kt deleted file mode 100644 index 50b5f7a40e..0000000000 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentExtensions.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.x8bit.bitwarden.data.platform.repository.util - -import com.x8bit.bitwarden.data.auth.datasource.disk.model.EnvironmentUrlDataJson -import com.x8bit.bitwarden.data.platform.repository.model.Environment - -/** - * Converts a raw [EnvironmentUrlDataJson] to an externally-consumable [Environment]. - */ -fun EnvironmentUrlDataJson.toEnvironmentUrls(): Environment = - when (this) { - Environment.Us.environmentUrlData -> Environment.Us - Environment.Eu.environmentUrlData -> Environment.Eu - else -> Environment.SelfHosted(environmentUrlData = this) - } - -/** - * Converts a nullable [EnvironmentUrlDataJson] to an [Environment], where `null` values default to - * the US environment. - */ -fun EnvironmentUrlDataJson?.toEnvironmentUrlsOrDefault(): Environment = - this?.toEnvironmentUrls() ?: Environment.Us diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentUrlDataJsonExtensions.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentUrlDataJsonExtensions.kt index 97d8c624ea..ad776bd619 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentUrlDataJsonExtensions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentUrlDataJsonExtensions.kt @@ -22,3 +22,20 @@ val EnvironmentUrlDataJson.labelOrBaseUrlHost: String .orEmpty() } } + +/** + * Converts a raw [EnvironmentUrlDataJson] to an externally-consumable [Environment]. + */ +fun EnvironmentUrlDataJson.toEnvironmentUrls(): Environment = + when (this) { + Environment.Us.environmentUrlData -> Environment.Us + Environment.Eu.environmentUrlData -> Environment.Eu + else -> Environment.SelfHosted(environmentUrlData = this) + } + +/** + * Converts a nullable [EnvironmentUrlDataJson] to an [Environment], where `null` values default to + * the US environment. + */ +fun EnvironmentUrlDataJson?.toEnvironmentUrlsOrDefault(): Environment = + this?.toEnvironmentUrls() ?: Environment.Us diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/EnvironmentRepositoryTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/EnvironmentRepositoryTest.kt index b0dc30cbfb..1ad78cb665 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/EnvironmentRepositoryTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/EnvironmentRepositoryTest.kt @@ -165,7 +165,7 @@ class EnvironmentRepositoryTest { } private const val ENVIRONMENT_EXTENSIONS_PATH = - "com.x8bit.bitwarden.data.platform.repository.util.EnvironmentExtensionsKt" + "com.x8bit.bitwarden.data.platform.repository.util.EnvironmentUrlDataJsonExtensionsKt" private class FakeEnvironmentDiskSource : EnvironmentDiskSource { override var preAuthEnvironmentUrlData: EnvironmentUrlDataJson? = null diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentExtensionsTest.kt deleted file mode 100644 index 2ff063da4e..0000000000 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentExtensionsTest.kt +++ /dev/null @@ -1,86 +0,0 @@ -package com.x8bit.bitwarden.data.platform.repository.util - -import com.x8bit.bitwarden.data.auth.datasource.disk.model.EnvironmentUrlDataJson -import com.x8bit.bitwarden.data.platform.repository.model.Environment -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test - -class EnvironmentExtensionsTest { - @Test - fun `toEnvironmentUrls should correctly convert US urls to the expected type`() { - assertEquals( - Environment.Us, - EnvironmentUrlDataJson.DEFAULT_US.toEnvironmentUrls(), - ) - } - - @Test - fun `toEnvironmentUrls should correctly convert EU urls to the expected type`() { - assertEquals( - Environment.Eu, - EnvironmentUrlDataJson.DEFAULT_EU.toEnvironmentUrls(), - ) - } - - @Test - fun `toEnvironmentUrls should correctly convert custom urls to the expected type`() { - val environmentUrlData = EnvironmentUrlDataJson( - base = "base", - api = "api", - identity = "identity", - icon = "icon", - notifications = "notifications", - webVault = "webVault", - events = "events", - ) - assertEquals( - Environment.SelfHosted( - environmentUrlData = environmentUrlData, - ), - environmentUrlData.toEnvironmentUrls(), - ) - } - - @Test - fun `toEnvironmentUrlsOrDefault should correctly convert US urls to the expected type`() { - assertEquals( - Environment.Us, - EnvironmentUrlDataJson.DEFAULT_US.toEnvironmentUrlsOrDefault(), - ) - } - - @Test - fun `toEnvironmentUrlsOrDefault should correctly convert EU urls to the expected type`() { - assertEquals( - Environment.Eu, - EnvironmentUrlDataJson.DEFAULT_EU.toEnvironmentUrlsOrDefault(), - ) - } - - @Test - fun `toEnvironmentUrlsOrDefault should correctly convert custom urls to the expected type`() { - val environmentUrlData = EnvironmentUrlDataJson( - base = "base", - api = "api", - identity = "identity", - icon = "icon", - notifications = "notifications", - webVault = "webVault", - events = "events", - ) - assertEquals( - Environment.SelfHosted( - environmentUrlData = environmentUrlData, - ), - environmentUrlData.toEnvironmentUrlsOrDefault(), - ) - } - - @Test - fun `toEnvironmentUrlsOrDefault should convert null types to US values`() { - assertEquals( - Environment.Us, - (null as EnvironmentUrlDataJson?).toEnvironmentUrlsOrDefault(), - ) - } -} diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentUrlsDataJsonExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentUrlsDataJsonExtensionsTest.kt index 7dc73c8b35..e71c03af91 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentUrlsDataJsonExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/platform/repository/util/EnvironmentUrlsDataJsonExtensionsTest.kt @@ -33,4 +33,82 @@ class EnvironmentUrlsDataJsonExtensionsTest { environment.labelOrBaseUrlHost, ) } + + @Test + fun `toEnvironmentUrls should correctly convert US urls to the expected type`() { + assertEquals( + Environment.Us, + EnvironmentUrlDataJson.DEFAULT_US.toEnvironmentUrls(), + ) + } + + @Test + fun `toEnvironmentUrls should correctly convert EU urls to the expected type`() { + assertEquals( + Environment.Eu, + EnvironmentUrlDataJson.DEFAULT_EU.toEnvironmentUrls(), + ) + } + + @Test + fun `toEnvironmentUrls should correctly convert custom urls to the expected type`() { + val environmentUrlData = EnvironmentUrlDataJson( + base = "base", + api = "api", + identity = "identity", + icon = "icon", + notifications = "notifications", + webVault = "webVault", + events = "events", + ) + assertEquals( + Environment.SelfHosted( + environmentUrlData = environmentUrlData, + ), + environmentUrlData.toEnvironmentUrls(), + ) + } + + @Test + fun `toEnvironmentUrlsOrDefault should correctly convert US urls to the expected type`() { + assertEquals( + Environment.Us, + EnvironmentUrlDataJson.DEFAULT_US.toEnvironmentUrlsOrDefault(), + ) + } + + @Test + fun `toEnvironmentUrlsOrDefault should correctly convert EU urls to the expected type`() { + assertEquals( + Environment.Eu, + EnvironmentUrlDataJson.DEFAULT_EU.toEnvironmentUrlsOrDefault(), + ) + } + + @Test + fun `toEnvironmentUrlsOrDefault should correctly convert custom urls to the expected type`() { + val environmentUrlData = EnvironmentUrlDataJson( + base = "base", + api = "api", + identity = "identity", + icon = "icon", + notifications = "notifications", + webVault = "webVault", + events = "events", + ) + assertEquals( + Environment.SelfHosted( + environmentUrlData = environmentUrlData, + ), + environmentUrlData.toEnvironmentUrlsOrDefault(), + ) + } + + @Test + fun `toEnvironmentUrlsOrDefault should convert null types to US values`() { + assertEquals( + Environment.Us, + (null as EnvironmentUrlDataJson?).toEnvironmentUrlsOrDefault(), + ) + } }