Merge pull request #136 from kirmanak/server-version

Fallback to V1 if server version is unknown
This commit is contained in:
Kirill Kamakin
2023-04-07 14:06:29 +02:00
committed by GitHub
3 changed files with 17 additions and 16 deletions

View File

@@ -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")
}

View File

@@ -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<Unit> {

View File

@@ -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