Test met echte CalDAV-snapshot (dienst 4051) door volledige pipeline
This commit is contained in:
parent
34505be9b8
commit
c21d3dc837
2 changed files with 35 additions and 0 deletions
|
|
@ -3,6 +3,7 @@ package nl.eddydevink.buschauffeurswekker.caldav
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
import java.time.ZoneId
|
import java.time.ZoneId
|
||||||
import java.time.ZonedDateTime
|
import java.time.ZonedDateTime
|
||||||
|
import nl.eddydevink.buschauffeurswekker.core.ShiftPlanner
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.junit.Assert.assertNull
|
import org.junit.Assert.assertNull
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
@ -125,6 +126,29 @@ class IcalTest {
|
||||||
assertEquals("Dienst & meer", event.summary)
|
assertEquals("Dienst & meer", event.summary)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `echte serverresponse geeft de juiste wekkers`() {
|
||||||
|
// Snapshot van de echte CalDAV-response (ebs_diensten-1, 15-10-2026, dienst 4051 om 06:18).
|
||||||
|
val resource = javaClass.classLoader.getResourceAsStream("real_ebs_20261015.ics")!!
|
||||||
|
.bufferedReader().readText()
|
||||||
|
val event = Ical.firstTimedEvent(resource)!!
|
||||||
|
assertEquals("4051", event.summary)
|
||||||
|
assertEquals(
|
||||||
|
LocalDateTime.of(2026, 10, 15, 6, 18),
|
||||||
|
event.start.withZoneSameInstant(amsterdam).toLocalDateTime(),
|
||||||
|
)
|
||||||
|
val plan = ShiftPlanner.plan(event.start.withZoneSameInstant(amsterdam).toLocalDateTime())
|
||||||
|
// Afgerond 06:15 → Opstaan 04:15, Wally 04:45, Vertrek 05:45.
|
||||||
|
assertEquals(
|
||||||
|
listOf(
|
||||||
|
LocalDateTime.of(2026, 10, 15, 4, 15),
|
||||||
|
LocalDateTime.of(2026, 10, 15, 4, 45),
|
||||||
|
LocalDateTime.of(2026, 10, 15, 5, 45),
|
||||||
|
),
|
||||||
|
plan.map { it.time },
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
private fun buildVEvent(summary: String, dtstart: String, extra: String = ""): String {
|
private fun buildVEvent(summary: String, dtstart: String, extra: String = ""): String {
|
||||||
val extraLine = if (extra.isBlank()) "" else "$extra\n"
|
val extraLine = if (extra.isBlank()) "" else "$extra\n"
|
||||||
return """
|
return """
|
||||||
|
|
|
||||||
11
app/src/test/resources/real_ebs_20261015.ics
Normal file
11
app/src/test/resources/real_ebs_20261015.ics
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
BEGIN:VCALENDAR
|
||||||
|
VERSION:2.0
|
||||||
|
PRODID:-//scrapedienst//NL
|
||||||
|
BEGIN:VEVENT
|
||||||
|
UID:5a33190e-f55f-45fb-8849-3ca2a979e6b7
|
||||||
|
DTSTAMP:20261001T150733Z
|
||||||
|
SUMMARY:4051
|
||||||
|
DTSTART;TZID=Europe/Amsterdam:20261015T061800
|
||||||
|
DTEND;TZID=Europe/Amsterdam:20261015T124000
|
||||||
|
END:VEVENT
|
||||||
|
END:VCALENDAR
|
||||||
Loading…
Reference in a new issue