FakeCalendarBridge.kt
31 lignes · 1365 octets
package fr.ebii.card2vcf.sync /** Fake [CalendarBridgeApi] en mémoire (sans `ContentResolver`) pour tester le pont Agenda↔Room. */ class FakeCalendarBridge : CalendarBridgeApi { private val calendars = mutableMapOf<String, Long>() private val events = mutableMapOf<Long, MutableMap<Long, CalendarEventSnapshot>>() private var nextCalendarId = 1L private var nextEventId = 1L val deletedEventIds = mutableListOf<Long>() override fun ensureLocalCalendar(displayName: String): Long = calendars.getOrPut(displayName) { nextCalendarId++ } override fun listEvents(calendarId: Long): List<CalendarEventSnapshot> = events[calendarId]?.values?.toList() ?: emptyList() override fun upsertEvent(calendarId: Long, snap: CalendarEventSnapshot): Long { val calendarEvents = events.getOrPut(calendarId) { mutableMapOf() } val eventId = snap.eventId ?: nextEventId++ calendarEvents[eventId] = snap.copy(eventId = eventId) return eventId } override fun deleteEvent(eventId: Long) { deletedEventIds += eventId events.values.forEach { it.remove(eventId) } } /** Simule un événement déjà présent dans l'app Agenda système (ajout hors [upsertEvent]). */ fun seedEvent(calendarId: Long, snap: CalendarEventSnapshot): Long = upsertEvent(calendarId, snap) }
GitRust