Skip to content
Snippets Groups Projects
Commit cd43afc8 authored by Matthias Urhahn's avatar Matthias Urhahn
Browse files

Fix CovidTestCertificateCard date related merge regressions.

(Porting the fix from 2.4.x to 2.5.x)
parent 500e2d71
No related branches found
Tags 0.8.12
No related merge requests found
...@@ -9,6 +9,7 @@ import dagger.Module ...@@ -9,6 +9,7 @@ import dagger.Module
import dagger.android.ContributesAndroidInjector import dagger.android.ContributesAndroidInjector
import de.rki.coronawarnapp.R import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.covidcertificate.person.ui.overview.items.CertificatesItem import de.rki.coronawarnapp.covidcertificate.person.ui.overview.items.CertificatesItem
import de.rki.coronawarnapp.covidcertificate.test.core.TestCertificate
import de.rki.coronawarnapp.covidcertificate.test.ui.cards.CovidTestCertificateCard import de.rki.coronawarnapp.covidcertificate.test.ui.cards.CovidTestCertificateCard
import de.rki.coronawarnapp.covidcertificate.vaccination.core.VaccinatedPerson import de.rki.coronawarnapp.covidcertificate.vaccination.core.VaccinatedPerson
import de.rki.coronawarnapp.covidcertificate.vaccination.ui.cards.CreateVaccinationCard import de.rki.coronawarnapp.covidcertificate.vaccination.ui.cards.CreateVaccinationCard
...@@ -40,6 +41,7 @@ class CertificatesFragmentTest : BaseUITest() { ...@@ -40,6 +41,7 @@ class CertificatesFragmentTest : BaseUITest() {
@MockK lateinit var viewModel: CertificatesViewModel @MockK lateinit var viewModel: CertificatesViewModel
@MockK lateinit var vaccinatedPerson: VaccinatedPerson @MockK lateinit var vaccinatedPerson: VaccinatedPerson
@MockK lateinit var testCertificate: TestCertificate
private val formatter = DateTimeFormat.forPattern("dd.MM.yyyy HH:mm") private val formatter = DateTimeFormat.forPattern("dd.MM.yyyy HH:mm")
private val testDate = DateTime.parse("12.05.2021 19:00", formatter) private val testDate = DateTime.parse("12.05.2021 19:00", formatter)
...@@ -47,9 +49,18 @@ class CertificatesFragmentTest : BaseUITest() { ...@@ -47,9 +49,18 @@ class CertificatesFragmentTest : BaseUITest() {
@Before @Before
fun setup() { fun setup() {
MockKAnnotations.init(this, relaxed = true) MockKAnnotations.init(this, relaxed = true)
every { vaccinatedPerson.fullName } returns "Andrea Schneider"
every { vaccinatedPerson.getMostRecentVaccinationCertificate.expiresAt } returns vaccinatedPerson.apply {
testDate.plus(Duration.standardDays(365)).toInstant() every { fullName } returns "Andrea Schneider"
every {
getMostRecentVaccinationCertificate.expiresAt
} returns testDate.plus(Duration.standardDays(365)).toInstant()
}
testCertificate.apply {
every { fullName } returns "Andrea Schneider"
every { sampleCollectedAt } returns testDate.toInstant()
}
setupMockViewModel( setupMockViewModel(
object : CertificatesViewModel.Factory { object : CertificatesViewModel.Factory {
...@@ -126,8 +137,7 @@ class CertificatesFragmentTest : BaseUITest() { ...@@ -126,8 +137,7 @@ class CertificatesFragmentTest : BaseUITest() {
onClickAction = {} onClickAction = {}
), ),
CovidTestCertificateCard.Item( CovidTestCertificateCard.Item(
testDate = testDate, certificate = testCertificate
testPerson = "Andrea Schneider"
) { } ) { }
) )
) )
......
...@@ -28,7 +28,7 @@ class CovidTestCertificatePendingCard(parent: ViewGroup) : ...@@ -28,7 +28,7 @@ class CovidTestCertificatePendingCard(parent: ViewGroup) :
val curItem = payloads.filterIsInstance<Item>().singleOrNull() ?: item val curItem = payloads.filterIsInstance<Item>().singleOrNull() ?: item
val registrationTime = curItem.certificate.registeredAt.toUserTimeZone() val registrationTime = curItem.certificate.registeredAt.toUserTimeZone()
testTime.text = context.getString( testTime.text = context.getString(
R.string.test_certificate_registration_time, R.string.test_certificate_registration_time,
registrationTime.toDayFormat(), registrationTime.toDayFormat(),
......
package de.rki.coronawarnapp.covidcertificate.test.ui.cards package de.rki.coronawarnapp.covidcertificate.test.ui.cards
import de.rki.coronawarnapp.covidcertificate.person.ui.overview.items.CertificatesItem import de.rki.coronawarnapp.covidcertificate.person.ui.overview.items.CertificatesItem
import org.joda.time.DateTime import de.rki.coronawarnapp.covidcertificate.test.core.TestCertificate
interface CovidCertificateTestItem : CertificatesItem { interface CovidCertificateTestItem : CertificatesItem {
val testDate: DateTime val certificate: TestCertificate
override val stableId: Long override val stableId: Long
get() = testDate.hashCode().toLong() get() = certificate.registeredAt.hashCode().toLong()
} }
...@@ -2,12 +2,13 @@ package de.rki.coronawarnapp.covidcertificate.test.ui.cards ...@@ -2,12 +2,13 @@ package de.rki.coronawarnapp.covidcertificate.test.ui.cards
import android.view.ViewGroup import android.view.ViewGroup
import de.rki.coronawarnapp.R import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.covidcertificate.test.core.TestCertificate
import de.rki.coronawarnapp.covidcertificate.test.ui.CertificatesAdapter import de.rki.coronawarnapp.covidcertificate.test.ui.CertificatesAdapter
import de.rki.coronawarnapp.databinding.CovidTestSuccessCardBinding import de.rki.coronawarnapp.databinding.CovidTestSuccessCardBinding
import de.rki.coronawarnapp.util.TimeAndDateExtensions.toDayFormat import de.rki.coronawarnapp.util.TimeAndDateExtensions.toDayFormat
import de.rki.coronawarnapp.util.TimeAndDateExtensions.toShortTimeFormat import de.rki.coronawarnapp.util.TimeAndDateExtensions.toShortTimeFormat
import de.rki.coronawarnapp.util.TimeAndDateExtensions.toUserTimeZone
import de.rki.coronawarnapp.util.lists.diffutil.HasPayloadDiffer import de.rki.coronawarnapp.util.lists.diffutil.HasPayloadDiffer
import org.joda.time.DateTime
class CovidTestCertificateCard(parent: ViewGroup) : class CovidTestCertificateCard(parent: ViewGroup) :
CertificatesAdapter.CertificatesItemVH<CovidTestCertificateCard.Item, CovidTestSuccessCardBinding>( CertificatesAdapter.CertificatesItemVH<CovidTestCertificateCard.Item, CovidTestSuccessCardBinding>(
...@@ -24,20 +25,22 @@ class CovidTestCertificateCard(parent: ViewGroup) : ...@@ -24,20 +25,22 @@ class CovidTestCertificateCard(parent: ViewGroup) :
payloads: List<Any> payloads: List<Any>
) -> Unit = { item, payloads -> ) -> Unit = { item, payloads ->
val curItem = payloads.filterIsInstance<Item>().singleOrNull() ?: item val curItem = payloads.filterIsInstance<Item>().singleOrNull() ?: item
val date = curItem.certificate.sampleCollectedAt.toUserTimeZone()
testTime.text = context.getString( testTime.text = context.getString(
R.string.test_certificate_time, R.string.test_certificate_time,
item.testDate.toDayFormat(), date.toDayFormat(),
item.testDate.toShortTimeFormat() date.toShortTimeFormat()
) )
personName.text = curItem.testPerson personName.text = curItem.certificate.fullName
itemView.setOnClickListener { curItem.onClickAction(curItem) } itemView.setOnClickListener { curItem.onClickAction(curItem) }
} }
data class Item( data class Item(
override val testDate: DateTime, override val certificate: TestCertificate,
val testPerson: String,
val onClickAction: (Item) -> Unit, val onClickAction: (Item) -> Unit,
) : CovidCertificateTestItem, HasPayloadDiffer { ) : CovidCertificateTestItem, HasPayloadDiffer {
override fun diffPayload(old: Any, new: Any): Any? = if (old::class == new::class) new else null override fun diffPayload(old: Any, new: Any): Any? = if (old::class == new::class) new else null
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment