From 0bc79cbbafc53b4b1e6823b2ae45778ef26d75e6 Mon Sep 17 00:00:00 2001 From: Lukas Lechner <lukas.lechner@sap.com> Date: Wed, 17 Mar 2021 11:05:31 +0100 Subject: [PATCH] Use TraceLocationType enums from protobuf (DEV) (#2624) * Use TraceLocationType enums from protobuf * Adapt database tests --- .../storage/CheckInDatabaseData.kt | 6 +++--- .../storage/TraceLocationDatabaseData.kt | 7 ++++--- .../ui/createevent/CreateEventTestViewModel.kt | 4 +++- .../events/DefaultTraceLocation.kt | 3 ++- .../eventregistration/events/TraceLocation.kt | 9 ++------- .../storage/entity/TraceLocationConverters.kt | 7 ++++--- .../storage/entity/TraceLocationEntity.kt | 3 ++- .../events/DefaultTraceLocationKtTest.kt | 18 ++++++++++-------- .../entity/TraceLocationConvertersTest.kt | 14 +++++++------- .../storage/entity/TraceLocationEntityTest.kt | 11 ++++++----- 10 files changed, 43 insertions(+), 39 deletions(-) diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/CheckInDatabaseData.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/CheckInDatabaseData.kt index 2797a59ee..32f3d6094 100644 --- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/CheckInDatabaseData.kt +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/CheckInDatabaseData.kt @@ -1,7 +1,7 @@ package de.rki.coronawarnapp.eventregistration.storage -import de.rki.coronawarnapp.eventregistration.events.TraceLocation import de.rki.coronawarnapp.eventregistration.storage.entity.TraceLocationCheckInEntity +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass import org.joda.time.Instant object CheckInDatabaseData { @@ -9,7 +9,7 @@ object CheckInDatabaseData { val testCheckIn = TraceLocationCheckInEntity( guid = "testGuid1", version = 1, - type = TraceLocation.Type.TEMPORARY_OTHER.value, + type = TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER.number, description = "testDescription1", address = "testAddress1", traceLocationStart = Instant.parse("2021-01-01T12:00:00.000Z"), @@ -25,7 +25,7 @@ object CheckInDatabaseData { val testCheckInWithoutCheckOutTime = TraceLocationCheckInEntity( guid = "testGuid2", version = 1, - type = TraceLocation.Type.TEMPORARY_OTHER.value, + type = TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER.number, description = "testDescription2", address = "testAddress2", traceLocationStart = null, diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/TraceLocationDatabaseData.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/TraceLocationDatabaseData.kt index 3891b6bdf..8386bf1db 100644 --- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/TraceLocationDatabaseData.kt +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/eventregistration/storage/TraceLocationDatabaseData.kt @@ -1,7 +1,8 @@ package de.rki.coronawarnapp.eventregistration.storage -import de.rki.coronawarnapp.eventregistration.events.TraceLocation import de.rki.coronawarnapp.eventregistration.storage.entity.TraceLocationEntity +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER import org.joda.time.Instant object TraceLocationDatabaseData { @@ -9,7 +10,7 @@ object TraceLocationDatabaseData { val testTraceLocation1 = TraceLocationEntity( guid = "TestGuid1", version = 1, - type = TraceLocation.Type.TEMPORARY_OTHER, + type = LOCATION_TYPE_TEMPORARY_OTHER, description = "TestTraceLocation1", address = "TestTraceLocationAddress1", startDate = Instant.parse("2021-01-01T12:00:00.000Z"), @@ -21,7 +22,7 @@ object TraceLocationDatabaseData { val testTraceLocation2 = TraceLocationEntity( guid = "TestGuid2", version = 1, - type = TraceLocation.Type.PERMANENT_OTHER, + type = LOCATION_TYPE_PERMANENT_OTHER, description = "TestTraceLocation2", address = "TestTraceLocationAddress2", startDate = null, diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/eventregistration/ui/createevent/CreateEventTestViewModel.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/eventregistration/ui/createevent/CreateEventTestViewModel.kt index 3668a4692..69ad6c587 100644 --- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/eventregistration/ui/createevent/CreateEventTestViewModel.kt +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/eventregistration/ui/createevent/CreateEventTestViewModel.kt @@ -6,6 +6,7 @@ import dagger.assisted.AssistedInject import de.rki.coronawarnapp.eventregistration.events.DefaultTraceLocation import de.rki.coronawarnapp.eventregistration.events.TraceLocation import de.rki.coronawarnapp.eventregistration.storage.repo.TraceLocationRepository +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass import de.rki.coronawarnapp.util.TimeAndDateExtensions.seconds import de.rki.coronawarnapp.util.coroutine.DispatcherProvider import de.rki.coronawarnapp.util.viewmodel.CWAViewModel @@ -47,7 +48,8 @@ class CreateEventTestViewModel @AssistedInject constructor( val endTimeStampSeconds = endDate?.toInstant()?.seconds ?: 0 val traceLocationType = - if (type == "Event") TraceLocation.Type.TEMPORARY_OTHER else TraceLocation.Type.PERMANENT_OTHER + if (type == "Event") TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER + else TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER val traceLocation = DefaultTraceLocation( UUID.randomUUID().toString(), // will be provided by the server when the endpoint is ready diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocation.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocation.kt index f792ebf9e..53ef445b2 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocation.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocation.kt @@ -1,13 +1,14 @@ package de.rki.coronawarnapp.eventregistration.events import de.rki.coronawarnapp.eventregistration.storage.entity.TraceLocationEntity +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass import org.joda.time.Instant const val TRACE_LOCATION_VERSION = 1 data class DefaultTraceLocation( override val guid: String, - override val type: TraceLocation.Type, + override val type: TraceLocationOuterClass.TraceLocationType, override val description: String, override val address: String, override val startDate: Instant?, diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/TraceLocation.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/TraceLocation.kt index 1316ea799..3eac8e92c 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/TraceLocation.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/events/TraceLocation.kt @@ -1,21 +1,16 @@ package de.rki.coronawarnapp.eventregistration.events +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass import org.joda.time.Instant interface TraceLocation { val guid: String val version: Int - val type: Type + val type: TraceLocationOuterClass.TraceLocationType val description: String val address: String val startDate: Instant? val endDate: Instant? val defaultCheckInLengthInMinutes: Int? val signature: String - - enum class Type(val value: Int) { - UNSPECIFIED(0), - PERMANENT_OTHER(1), - TEMPORARY_OTHER(2) - } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConverters.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConverters.kt index 89546329e..2f547dd17 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConverters.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConverters.kt @@ -1,13 +1,14 @@ package de.rki.coronawarnapp.eventregistration.storage.entity import androidx.room.TypeConverter -import de.rki.coronawarnapp.eventregistration.events.TraceLocation +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass class TraceLocationConverters { @TypeConverter - fun toTraceLocationType(value: Int) = enumValues<TraceLocation.Type>().single { it.value == value } + fun toTraceLocationType(value: Int): TraceLocationOuterClass.TraceLocationType = + TraceLocationOuterClass.TraceLocationType.forNumber(value)!! @TypeConverter - fun fromTraceLocationType(type: TraceLocation.Type) = type.value + fun fromTraceLocationType(type: TraceLocationOuterClass.TraceLocationType): Int = type.number } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntity.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntity.kt index c681d3a92..052257f6b 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntity.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntity.kt @@ -4,6 +4,7 @@ import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey import de.rki.coronawarnapp.eventregistration.events.TraceLocation +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass import org.joda.time.Instant @Entity(tableName = "traceLocations") @@ -11,7 +12,7 @@ data class TraceLocationEntity( @PrimaryKey @ColumnInfo(name = "guid") val guid: String, @ColumnInfo(name = "version") val version: Int, - @ColumnInfo(name = "type") val type: TraceLocation.Type, + @ColumnInfo(name = "type") val type: TraceLocationOuterClass.TraceLocationType, @ColumnInfo(name = "description") val description: String, @ColumnInfo(name = "address") val address: String, @ColumnInfo(name = "startDate") val startDate: Instant?, diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocationKtTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocationKtTest.kt index 4b624abcb..9afe5214b 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocationKtTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/events/DefaultTraceLocationKtTest.kt @@ -1,6 +1,8 @@ package de.rki.coronawarnapp.eventregistration.events import de.rki.coronawarnapp.eventregistration.storage.entity.TraceLocationEntity +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER import io.kotest.matchers.shouldBe import org.joda.time.Instant import org.junit.jupiter.api.Test @@ -13,7 +15,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() { TraceLocationEntity( guid = "TestGuid", version = 1, - type = TraceLocation.Type.TEMPORARY_OTHER, + type = LOCATION_TYPE_PERMANENT_OTHER, description = "TestTraceLocation", address = "TestTraceLocationAddress", startDate = Instant.parse("2021-01-01T12:00:00.000Z"), @@ -23,7 +25,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() { ).toTraceLocation() shouldBe DefaultTraceLocation( guid = "TestGuid", version = 1, - type = TraceLocation.Type.TEMPORARY_OTHER, + type = LOCATION_TYPE_PERMANENT_OTHER, description = "TestTraceLocation", address = "TestTraceLocationAddress", startDate = Instant.parse("2021-01-01T12:00:00.000Z"), @@ -38,7 +40,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() { TraceLocationEntity( guid = "TestGuid", version = 1, - type = TraceLocation.Type.PERMANENT_OTHER, + type = LOCATION_TYPE_PERMANENT_OTHER, description = "TestTraceLocation", address = "TestTraceLocationAddress", startDate = null, @@ -48,7 +50,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() { ).toTraceLocation() shouldBe DefaultTraceLocation( guid = "TestGuid", version = 1, - type = TraceLocation.Type.PERMANENT_OTHER, + type = LOCATION_TYPE_PERMANENT_OTHER, description = "TestTraceLocation", address = "TestTraceLocationAddress", startDate = null, @@ -64,7 +66,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() { TraceLocationEntity( guid = "TestGuid1", version = 1, - type = TraceLocation.Type.TEMPORARY_OTHER, + type = LOCATION_TYPE_TEMPORARY_OTHER, description = "TestTraceLocation1", address = "TestTraceLocationAddress1", startDate = Instant.parse("2021-01-01T12:00:00.000Z"), @@ -75,7 +77,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() { TraceLocationEntity( guid = "TestGuid2", version = 1, - type = TraceLocation.Type.PERMANENT_OTHER, + type = LOCATION_TYPE_PERMANENT_OTHER, description = "TestTraceLocation2", address = "TestTraceLocationAddress2", startDate = null, @@ -87,7 +89,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() { DefaultTraceLocation( guid = "TestGuid1", version = 1, - type = TraceLocation.Type.TEMPORARY_OTHER, + type = LOCATION_TYPE_TEMPORARY_OTHER, description = "TestTraceLocation1", address = "TestTraceLocationAddress1", startDate = Instant.parse("2021-01-01T12:00:00.000Z"), @@ -98,7 +100,7 @@ internal class DefaultTraceLocationKtTest : BaseTest() { DefaultTraceLocation( guid = "TestGuid2", version = 1, - type = TraceLocation.Type.PERMANENT_OTHER, + type = LOCATION_TYPE_PERMANENT_OTHER, description = "TestTraceLocation2", address = "TestTraceLocationAddress2", startDate = null, diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConvertersTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConvertersTest.kt index 24260f9a9..203b7762c 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConvertersTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationConvertersTest.kt @@ -1,6 +1,6 @@ package de.rki.coronawarnapp.eventregistration.storage.entity -import de.rki.coronawarnapp.eventregistration.events.TraceLocation +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass import io.kotest.matchers.shouldBe import org.junit.jupiter.api.Test import testhelpers.BaseTest @@ -12,18 +12,18 @@ internal class TraceLocationConvertersTest : BaseTest() { @Test fun `toTraceLocationType() should convert different integer values to correct TraceLocation Types`() { with(converter) { - toTraceLocationType(0) shouldBe TraceLocation.Type.UNSPECIFIED - toTraceLocationType(1) shouldBe TraceLocation.Type.PERMANENT_OTHER - toTraceLocationType(2) shouldBe TraceLocation.Type.TEMPORARY_OTHER + toTraceLocationType(0) shouldBe TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_UNSPECIFIED + toTraceLocationType(1) shouldBe TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER + toTraceLocationType(2) shouldBe TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER } } @Test fun `fromTraceLocationType() should convert TraceLocation Types to correct integer values`() { with(converter) { - fromTraceLocationType(TraceLocation.Type.UNSPECIFIED) shouldBe 0 - fromTraceLocationType(TraceLocation.Type.PERMANENT_OTHER) shouldBe 1 - fromTraceLocationType(TraceLocation.Type.TEMPORARY_OTHER) shouldBe 2 + fromTraceLocationType(TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_UNSPECIFIED) shouldBe 0 + fromTraceLocationType(TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER) shouldBe 1 + fromTraceLocationType(TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER) shouldBe 2 } } } diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntityTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntityTest.kt index df49201e4..6ab4817ec 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntityTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/eventregistration/storage/entity/TraceLocationEntityTest.kt @@ -1,7 +1,8 @@ package de.rki.coronawarnapp.eventregistration.storage.entity import de.rki.coronawarnapp.eventregistration.events.DefaultTraceLocation -import de.rki.coronawarnapp.eventregistration.events.TraceLocation +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_PERMANENT_OTHER +import de.rki.coronawarnapp.server.protocols.internal.pt.TraceLocationOuterClass.TraceLocationType.LOCATION_TYPE_TEMPORARY_OTHER import io.kotest.matchers.shouldBe import org.joda.time.Instant import org.junit.jupiter.api.Test @@ -14,7 +15,7 @@ internal class TraceLocationEntityTest : BaseTest() { DefaultTraceLocation( guid = "TestGuid", version = 1, - type = TraceLocation.Type.TEMPORARY_OTHER, + type = LOCATION_TYPE_TEMPORARY_OTHER, description = "TestTraceLocation", address = "TestTraceLocationAddress", startDate = Instant.parse("2021-01-01T12:00:00.000Z"), @@ -24,7 +25,7 @@ internal class TraceLocationEntityTest : BaseTest() { ).toTraceLocationEntity() shouldBe TraceLocationEntity( guid = "TestGuid", version = 1, - type = TraceLocation.Type.TEMPORARY_OTHER, + type = LOCATION_TYPE_TEMPORARY_OTHER, description = "TestTraceLocation", address = "TestTraceLocationAddress", startDate = Instant.parse("2021-01-01T12:00:00.000Z"), @@ -39,7 +40,7 @@ internal class TraceLocationEntityTest : BaseTest() { DefaultTraceLocation( guid = "TestGuid", version = 1, - type = TraceLocation.Type.PERMANENT_OTHER, + type = LOCATION_TYPE_PERMANENT_OTHER, description = "TestTraceLocation", address = "TestTraceLocationAddress", startDate = null, @@ -49,7 +50,7 @@ internal class TraceLocationEntityTest : BaseTest() { ).toTraceLocationEntity() shouldBe TraceLocationEntity( guid = "TestGuid", version = 1, - type = TraceLocation.Type.PERMANENT_OTHER, + type = LOCATION_TYPE_PERMANENT_OTHER, description = "TestTraceLocation", address = "TestTraceLocationAddress", startDate = null, -- GitLab