From fba266fcb082f013c4ca177553124f1f76438f47 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 7 Apr 2023 13:30:35 +0200 Subject: [PATCH 1/3] Fallback to V1 if server version is unknown --- .../gq/kirmanak/mealient/data/baseurl/ServerInfoRepoImpl.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/gq/kirmanak/mealient/data/baseurl/ServerInfoRepoImpl.kt b/app/src/main/java/gq/kirmanak/mealient/data/baseurl/ServerInfoRepoImpl.kt index fdd547b..97c9fb8 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/baseurl/ServerInfoRepoImpl.kt +++ b/app/src/main/java/gq/kirmanak/mealient/data/baseurl/ServerInfoRepoImpl.kt @@ -1,6 +1,5 @@ package gq.kirmanak.mealient.data.baseurl -import gq.kirmanak.mealient.datasource.NetworkError import gq.kirmanak.mealient.datasource.ServerUrlProvider import gq.kirmanak.mealient.datasource.runCatchingExceptCancel import gq.kirmanak.mealient.logging.Logger @@ -38,7 +37,10 @@ class ServerInfoRepoImpl @Inject constructor( private fun determineServerVersion(version: String): ServerVersion = when { version.startsWith("v0") -> ServerVersion.V0 version.startsWith("v1") -> ServerVersion.V1 - else -> throw NetworkError.NotMealie(IllegalStateException("Server version is unknown: $version")) + else -> { + logger.w { "Unknown server version: $version" } + ServerVersion.V1 + } } override suspend fun tryBaseURL(baseURL: String): Result { From 12d39282de8822be9055edde02640de9df0aca44 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 7 Apr 2023 13:38:40 +0200 Subject: [PATCH 2/3] Bump version to 0.3.12 (27) --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 77bd899..1093879 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,8 +16,8 @@ plugins { android { defaultConfig { applicationId = "gq.kirmanak.mealient" - versionCode = 26 - versionName = "0.3.11" + versionCode = 27 + versionName = "0.3.12" testInstrumentationRunner = "gq.kirmanak.mealient.MealientTestRunner" testInstrumentationRunnerArguments += mapOf("clearPackageData" to "true") } From 05f1c974a6dc97d7a7fe02117f2a014b5796d69b Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 7 Apr 2023 13:58:09 +0200 Subject: [PATCH 3/3] Update unit tests accordingly --- .../data/baseurl/ServerInfoRepoTest.kt | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/app/src/test/java/gq/kirmanak/mealient/data/baseurl/ServerInfoRepoTest.kt b/app/src/test/java/gq/kirmanak/mealient/data/baseurl/ServerInfoRepoTest.kt index 17b2b65..91763eb 100644 --- a/app/src/test/java/gq/kirmanak/mealient/data/baseurl/ServerInfoRepoTest.kt +++ b/app/src/test/java/gq/kirmanak/mealient/data/baseurl/ServerInfoRepoTest.kt @@ -1,7 +1,6 @@ package gq.kirmanak.mealient.data.baseurl import com.google.common.truth.Truth.assertThat -import gq.kirmanak.mealient.datasource.NetworkError import gq.kirmanak.mealient.test.AuthImplTestData.TEST_BASE_URL import gq.kirmanak.mealient.test.AuthImplTestData.TEST_VERSION import gq.kirmanak.mealient.test.BaseUnitTest @@ -96,21 +95,21 @@ class ServerInfoRepoTest : BaseUnitTest() { coVerify { storage.storeServerVersion(TEST_VERSION) } } - @Test(expected = NetworkError.NotMealie::class) - fun `when data source has invalid value expect getVersion to throw`() = runTest { + @Test + fun `when data source has invalid value expect getVersion to return v1`() = runTest { + coEvery { storage.getServerVersion() } returns null + coEvery { storage.getBaseURL() } returns TEST_BASE_URL + coEvery { dataSource.getVersionInfo() } returns VersionInfo("v2.0.0") + assertThat(subject.getVersion()).isEqualTo(ServerVersion.V1) + } + + @Test + fun `when data source has invalid value expect getVersion to save value`() = runTest { coEvery { storage.getServerVersion() } returns null coEvery { storage.getBaseURL() } returns TEST_BASE_URL coEvery { dataSource.getVersionInfo() } returns VersionInfo("v2.0.0") subject.getVersion() - } - - @Test - fun `when data source has invalid value expect getVersion not to save`() = runTest { - coEvery { storage.getServerVersion() } returns null - coEvery { storage.getBaseURL() } returns TEST_BASE_URL - coEvery { dataSource.getVersionInfo() } returns VersionInfo("v2.0.0") - subject.runCatching { getVersion() } - coVerify(inverse = true) { storage.storeServerVersion(any()) } + coVerify { storage.storeServerVersion("v2.0.0") } } @Test