Merge pull request #136 from kirmanak/server-version
Fallback to V1 if server version is unknown
This commit is contained in:
@@ -16,8 +16,8 @@ plugins {
|
|||||||
android {
|
android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId = "gq.kirmanak.mealient"
|
applicationId = "gq.kirmanak.mealient"
|
||||||
versionCode = 26
|
versionCode = 27
|
||||||
versionName = "0.3.11"
|
versionName = "0.3.12"
|
||||||
testInstrumentationRunner = "gq.kirmanak.mealient.MealientTestRunner"
|
testInstrumentationRunner = "gq.kirmanak.mealient.MealientTestRunner"
|
||||||
testInstrumentationRunnerArguments += mapOf("clearPackageData" to "true")
|
testInstrumentationRunnerArguments += mapOf("clearPackageData" to "true")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package gq.kirmanak.mealient.data.baseurl
|
package gq.kirmanak.mealient.data.baseurl
|
||||||
|
|
||||||
import gq.kirmanak.mealient.datasource.NetworkError
|
|
||||||
import gq.kirmanak.mealient.datasource.ServerUrlProvider
|
import gq.kirmanak.mealient.datasource.ServerUrlProvider
|
||||||
import gq.kirmanak.mealient.datasource.runCatchingExceptCancel
|
import gq.kirmanak.mealient.datasource.runCatchingExceptCancel
|
||||||
import gq.kirmanak.mealient.logging.Logger
|
import gq.kirmanak.mealient.logging.Logger
|
||||||
@@ -38,7 +37,10 @@ class ServerInfoRepoImpl @Inject constructor(
|
|||||||
private fun determineServerVersion(version: String): ServerVersion = when {
|
private fun determineServerVersion(version: String): ServerVersion = when {
|
||||||
version.startsWith("v0") -> ServerVersion.V0
|
version.startsWith("v0") -> ServerVersion.V0
|
||||||
version.startsWith("v1") -> ServerVersion.V1
|
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> {
|
override suspend fun tryBaseURL(baseURL: String): Result<Unit> {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package gq.kirmanak.mealient.data.baseurl
|
package gq.kirmanak.mealient.data.baseurl
|
||||||
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
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_BASE_URL
|
||||||
import gq.kirmanak.mealient.test.AuthImplTestData.TEST_VERSION
|
import gq.kirmanak.mealient.test.AuthImplTestData.TEST_VERSION
|
||||||
import gq.kirmanak.mealient.test.BaseUnitTest
|
import gq.kirmanak.mealient.test.BaseUnitTest
|
||||||
@@ -96,21 +95,21 @@ class ServerInfoRepoTest : BaseUnitTest() {
|
|||||||
coVerify { storage.storeServerVersion(TEST_VERSION) }
|
coVerify { storage.storeServerVersion(TEST_VERSION) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = NetworkError.NotMealie::class)
|
@Test
|
||||||
fun `when data source has invalid value expect getVersion to throw`() = runTest {
|
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.getServerVersion() } returns null
|
||||||
coEvery { storage.getBaseURL() } returns TEST_BASE_URL
|
coEvery { storage.getBaseURL() } returns TEST_BASE_URL
|
||||||
coEvery { dataSource.getVersionInfo() } returns VersionInfo("v2.0.0")
|
coEvery { dataSource.getVersionInfo() } returns VersionInfo("v2.0.0")
|
||||||
subject.getVersion()
|
subject.getVersion()
|
||||||
}
|
coVerify { storage.storeServerVersion("v2.0.0") }
|
||||||
|
|
||||||
@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()) }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user