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
No related tags found
No related merge requests found
......@@ -9,6 +9,7 @@ import dagger.Module
import dagger.android.ContributesAndroidInjector
import de.rki.coronawarnapp.R
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.vaccination.core.VaccinatedPerson
import de.rki.coronawarnapp.covidcertificate.vaccination.ui.cards.CreateVaccinationCard
......@@ -40,6 +41,7 @@ class CertificatesFragmentTest : BaseUITest() {
@MockK lateinit var viewModel: CertificatesViewModel
@MockK lateinit var vaccinatedPerson: VaccinatedPerson
@MockK lateinit var testCertificate: TestCertificate
private val formatter = DateTimeFormat.forPattern("dd.MM.yyyy HH:mm")
private val testDate = DateTime.parse("12.05.2021 19:00", formatter)
......@@ -47,9 +49,18 @@ class CertificatesFragmentTest : BaseUITest() {
@Before
fun setup() {
MockKAnnotations.init(this, relaxed = true)
every { vaccinatedPerson.fullName } returns "Andrea Schneider"
every { vaccinatedPerson.getMostRecentVaccinationCertificate.expiresAt } returns
testDate.plus(Duration.standardDays(365)).toInstant()
vaccinatedPerson.apply {
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(
object : CertificatesViewModel.Factory {
......@@ -126,8 +137,7 @@ class CertificatesFragmentTest : BaseUITest() {
onClickAction = {}
),
CovidTestCertificateCard.Item(
testDate = testDate,
testPerson = "Andrea Schneider"
certificate = testCertificate
) { }
)
)
......
......@@ -28,7 +28,7 @@ class CovidTestCertificatePendingCard(parent: ViewGroup) :
val curItem = payloads.filterIsInstance<Item>().singleOrNull() ?: item
val registrationTime = curItem.certificate.registeredAt.toUserTimeZone()
val registrationTime = curItem.certificate.registeredAt.toUserTimeZone()
testTime.text = context.getString(
R.string.test_certificate_registration_time,
registrationTime.toDayFormat(),
......
package de.rki.coronawarnapp.covidcertificate.test.ui.cards
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 {
val testDate: DateTime
val certificate: TestCertificate
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
import android.view.ViewGroup
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.databinding.CovidTestSuccessCardBinding
import de.rki.coronawarnapp.util.TimeAndDateExtensions.toDayFormat
import de.rki.coronawarnapp.util.TimeAndDateExtensions.toShortTimeFormat
import de.rki.coronawarnapp.util.TimeAndDateExtensions.toUserTimeZone
import de.rki.coronawarnapp.util.lists.diffutil.HasPayloadDiffer
import org.joda.time.DateTime
class CovidTestCertificateCard(parent: ViewGroup) :
CertificatesAdapter.CertificatesItemVH<CovidTestCertificateCard.Item, CovidTestSuccessCardBinding>(
......@@ -24,20 +25,22 @@ class CovidTestCertificateCard(parent: ViewGroup) :
payloads: List<Any>
) -> Unit = { item, payloads ->
val curItem = payloads.filterIsInstance<Item>().singleOrNull() ?: item
val date = curItem.certificate.sampleCollectedAt.toUserTimeZone()
testTime.text = context.getString(
R.string.test_certificate_time,
item.testDate.toDayFormat(),
item.testDate.toShortTimeFormat()
date.toDayFormat(),
date.toShortTimeFormat()
)
personName.text = curItem.testPerson
personName.text = curItem.certificate.fullName
itemView.setOnClickListener { curItem.onClickAction(curItem) }
}
data class Item(
override val testDate: DateTime,
val testPerson: String,
override val certificate: TestCertificate,
val onClickAction: (Item) -> Unit,
) : CovidCertificateTestItem, HasPayloadDiffer {
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