Skip to content

Commit 90a8ed9

Browse files
committed
style/qg-253: Добавлен алиас для ICalCalendarItem<ZonedDateTime>
1 parent da1a795 commit 90a8ed9

10 files changed

Lines changed: 35 additions & 33 deletions

File tree

app/src/main/kotlin/pro/qyoga/i9ns/calendars/ical/ical4j/VEventExt.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import net.fortuna.ical4j.model.property.RecurrenceId
88
import pro.azhidkov.platform.java.time.toLocalDateTime
99
import pro.qyoga.i9ns.calendars.ical.model.ICalCalendarItem
1010
import pro.qyoga.i9ns.calendars.ical.model.ICalEventId
11+
import pro.qyoga.i9ns.calendars.ical.model.ICalZonedCalendarItem
1112
import java.time.Duration
1213
import java.time.ZoneId
1314
import java.time.ZonedDateTime
@@ -55,10 +56,10 @@ val VEvent.geographicsPosOrNull: String?
5556
val VEvent.locationOrNull: String?
5657
get() = this.location?.value
5758

58-
fun VEvent.toICalCalendarItem(): ICalCalendarItem<ZonedDateTime> =
59+
fun VEvent.toICalCalendarItem(): ICalZonedCalendarItem =
5960
toICalCalendarItem(Period(startDateTime, startDateTime + javaDuration))
6061

61-
fun VEvent.toICalCalendarItem(period: Period<ZonedDateTime>): ICalCalendarItem<ZonedDateTime> = ICalCalendarItem(
62+
fun VEvent.toICalCalendarItem(period: Period<ZonedDateTime>): ICalZonedCalendarItem = ICalCalendarItem(
6263
id,
6364
title,
6465
descriptionOrNull ?: "",

app/src/main/kotlin/pro/qyoga/i9ns/calendars/ical/model/ICalCalendar.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ fun ICalCalendar.findById(eventId: ICalEventId) =
6262

6363
fun ICalCalendar.calendarItemsIn(
6464
interval: Interval<ZonedDateTime>
65-
): List<ICalCalendarItem<ZonedDateTime>>? =
65+
): List<ICalZonedCalendarItem>? =
6666
vEvents()
6767
?.flatMap { ve: VEvent ->
6868
ve.calculateRecurrenceSet<ZonedDateTime>(interval.toICalPeriod())

app/src/main/kotlin/pro/qyoga/i9ns/calendars/ical/model/ICalCalendarItem.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import java.time.ZonedDateTime
77
import java.time.temporal.Temporal
88

99

10+
typealias ICalZonedCalendarItem = ICalCalendarItem<ZonedDateTime>
11+
1012
data class ICalCalendarItem<DATE : Temporal>(
1113
override val id: ICalEventId,
1214
override val title: String,
@@ -16,7 +18,7 @@ data class ICalCalendarItem<DATE : Temporal>(
1618
override val location: String?
1719
) : CalendarItem<ICalEventId, DATE>
1820

19-
fun ICalCalendarItem<ZonedDateTime>.toLocalizedICalCalendarItem(): ICalCalendarItem<LocalDateTime> =
21+
fun ICalZonedCalendarItem.toLocalizedICalCalendarItem(): ICalCalendarItem<LocalDateTime> =
2022
ICalCalendarItem(
2123
this.id,
2224
this.title,

app/src/test/kotlin/pro/qyoga/tests/cases/app/therapist/appointments/core/CreateAppointmentPageTest.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import org.springframework.http.HttpStatus
77
import pro.azhidkov.platform.java.time.toLocalTimeString
88
import pro.azhidkov.platform.spring.sdj.ergo.hydration.ref
99
import pro.qyoga.app.therapist.appointments.core.edit.forms.formatCommentFor
10-
import pro.qyoga.i9ns.calendars.ical.model.ICalCalendarItem
10+
import pro.qyoga.i9ns.calendars.ical.model.ICalZonedCalendarItem
1111
import pro.qyoga.tests.assertions.shouldBePage
1212
import pro.qyoga.tests.assertions.shouldHave
1313
import pro.qyoga.tests.assertions.shouldHaveElement
@@ -28,7 +28,10 @@ import pro.qyoga.tests.pages.therapist.appointments.CreateAppointmentForm
2828
import pro.qyoga.tests.pages.therapist.appointments.CreateAppointmentPage
2929
import pro.qyoga.tests.pages.therapist.appointments.EditAppointmentForm
3030
import pro.qyoga.tests.platform.instancio.KSelect.Companion.field
31-
import java.time.*
31+
import java.time.Duration
32+
import java.time.LocalDate
33+
import java.time.LocalTime
34+
import java.time.ZoneId
3235
import java.time.temporal.ChronoUnit
3336
import java.util.*
3437

@@ -155,11 +158,11 @@ class CreateAppointmentPageTest : QYogaAppIntegrationBaseTest() {
155158
// Сетап
156159
val event = aCalendarItem {
157160
set(
158-
field(ICalCalendarItem<ZonedDateTime>::dateTime),
161+
field(ICalZonedCalendarItem::dateTime),
159162
randomAppointmentDate().atZone(asiaNovosibirskTimeZone)
160163
)
161-
set(field(ICalCalendarItem<ZonedDateTime>::duration), Duration.ofMinutes(75))
162-
set(field(ICalCalendarItem<ZonedDateTime>::description), randomSentence())
164+
set(field(ICalZonedCalendarItem::duration), Duration.ofMinutes(75))
165+
set(field(ICalZonedCalendarItem::description), randomSentence())
163166
}
164167
iCalsCalendarsFixturePresets.createICalCalendarWithSingleEvent(event)
165168

app/src/test/kotlin/pro/qyoga/tests/cases/app/therapist/appointments/core/SchedulePageTest.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import io.kotest.matchers.shouldBe
66
import org.junit.jupiter.api.DisplayName
77
import org.junit.jupiter.api.Test
88
import pro.azhidkov.platform.spring.sdj.ergo.hydration.ref
9-
import pro.qyoga.i9ns.calendars.ical.model.ICalCalendarItem
9+
import pro.qyoga.i9ns.calendars.ical.model.ICalZonedCalendarItem
1010
import pro.qyoga.tests.assertions.SelectorOnlyComponent
1111
import pro.qyoga.tests.assertions.shouldBePage
1212
import pro.qyoga.tests.assertions.shouldHaveComponent
@@ -25,7 +25,6 @@ import pro.qyoga.tests.pages.therapist.appointments.appointmentCards
2525
import pro.qyoga.tests.pages.therapist.appointments.shouldMatch
2626
import pro.qyoga.tests.platform.instancio.KSelect.Companion.field
2727
import java.time.LocalDate
28-
import java.time.ZonedDateTime
2928

3029

3130
@DisplayName("Страница календаря")
@@ -118,10 +117,10 @@ class SchedulePageTest : QYogaAppIntegrationBaseTest() {
118117
val today = LocalDate.now()
119118
val event = aCalendarItem {
120119
set(
121-
field(ICalCalendarItem<ZonedDateTime>::dateTime),
120+
field(ICalZonedCalendarItem::dateTime),
122121
today.atTime(randomWorkingTime()).atZone(asiaNovosibirskTimeZone)
123122
)
124-
set(field(ICalCalendarItem<ZonedDateTime>::duration), AppointmentsObjectMother.fullCardDuration)
123+
set(field(ICalZonedCalendarItem::duration), AppointmentsObjectMother.fullCardDuration)
125124
}
126125

127126
ICalsCalendarsFixturePresets.createICalCalendarWithSingleEvent(event)

app/src/test/kotlin/pro/qyoga/tests/cases/core/calendar/ical/ICalCalendarsRepoTest.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@ package pro.qyoga.tests.cases.core.calendar.ical
33
import io.kotest.core.annotation.DisplayName
44
import io.kotest.matchers.shouldBe
55
import pro.qyoga.i9ns.calendars.ical.ICalCalendarsRepo
6-
import pro.qyoga.i9ns.calendars.ical.model.ICalCalendarItem
6+
import pro.qyoga.i9ns.calendars.ical.model.ICalZonedCalendarItem
77
import pro.qyoga.tests.fixture.backgrounds.ICalCalendarsBackgrounds
88
import pro.qyoga.tests.fixture.object_mothers.calendars.CalendarsObjectMother.aCalendarItem
99
import pro.qyoga.tests.fixture.object_mothers.calendars.ical.ICalCalendarsObjectMother
1010
import pro.qyoga.tests.fixture.object_mothers.therapists.THE_THERAPIST_REF
1111
import pro.qyoga.tests.fixture.presets.ICalsCalendarsFixturePresets
1212
import pro.qyoga.tests.infra.web.QYogaAppBaseKoTest
1313
import pro.qyoga.tests.platform.instancio.KSelect.Companion.field
14-
import java.time.ZonedDateTime
1514

1615

1716
@DisplayName("Репозиторий ical-календарей")
@@ -26,7 +25,7 @@ class ICalCalendarsRepoTest : QYogaAppBaseKoTest({
2625
val iCalEvent = aCalendarItem()
2726
val iCal = getBean<ICalsCalendarsFixturePresets>().createICalCalendarWithSingleEvent(iCalEvent)
2827
val updatedEvent = aCalendarItem {
29-
set(field(ICalCalendarItem<ZonedDateTime>::id), iCalEvent.id)
28+
set(field(ICalZonedCalendarItem::id), iCalEvent.id)
3029
}
3130
getBean<ICalCalendarsBackgrounds>().updateICalSource(
3231
iCal.icsUrl,

app/src/testFixtures/kotlin/pro/qyoga/tests/fixture/object_mothers/calendars/CalendarsObjectMother.kt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import org.instancio.InstancioApi
55
import org.instancio.Model
66
import pro.qyoga.i9ns.calendars.ical.model.ICalCalendarItem
77
import pro.qyoga.i9ns.calendars.ical.model.ICalEventId
8+
import pro.qyoga.i9ns.calendars.ical.model.ICalZonedCalendarItem
89
import pro.qyoga.tests.fixture.data.asiaNovosibirskTimeZone
910
import pro.qyoga.tests.fixture.data.faker
1011
import pro.qyoga.tests.fixture.data.randomElementOf
@@ -18,24 +19,24 @@ import java.time.ZonedDateTime
1819
object CalendarsObjectMother {
1920

2021
@Suppress("UNCHECKED_CAST")
21-
private val aCalendarItemModel: Model<ICalCalendarItem<ZonedDateTime>> = Instancio.of(ICalCalendarItem::class.java)
22+
private val aCalendarItemModel: Model<ICalZonedCalendarItem> = Instancio.of(ICalCalendarItem::class.java)
2223
.withTypeParameters(ZonedDateTime::class.java)
2324
.run {
24-
generateBy(field(ICalCalendarItem<ZonedDateTime>::id)) { aICalEventId() }
25-
generateBy(field(ICalCalendarItem<ZonedDateTime>::title)) { aAppointmentEventTitle() }
26-
generateBy(field(ICalCalendarItem<ZonedDateTime>::dateTime)) {
25+
generateBy(field(ICalZonedCalendarItem::id)) { aICalEventId() }
26+
generateBy(field(ICalZonedCalendarItem::title)) { aAppointmentEventTitle() }
27+
generateBy(field(ICalZonedCalendarItem::dateTime)) {
2728
randomAppointmentDate().atZone(
2829
asiaNovosibirskTimeZone
2930
)
3031
}
31-
generateBy(field(ICalCalendarItem<ZonedDateTime>::duration)) { AppointmentsObjectMother.fullCardDuration }
32+
generateBy(field(ICalZonedCalendarItem::duration)) { AppointmentsObjectMother.fullCardDuration }
3233
}
3334
.withSeed(faker.random().nextLong())
34-
.toModel() as Model<ICalCalendarItem<ZonedDateTime>>
35+
.toModel() as Model<ICalZonedCalendarItem>
3536

3637
fun aICalEventId() = ICalEventId(faker.internet().uuid().toString())
3738

38-
fun aCalendarItem(configureInstance: InstancioApi<ICalCalendarItem<ZonedDateTime>>.() -> InstancioApi<ICalCalendarItem<ZonedDateTime>> = { this }): ICalCalendarItem<ZonedDateTime> {
39+
fun aCalendarItem(configureInstance: InstancioApi<ICalZonedCalendarItem>.() -> InstancioApi<ICalZonedCalendarItem> = { this }): ICalZonedCalendarItem {
3940
return Instancio.of(aCalendarItemModel).run {
4041
this.configureInstance()
4142
}

app/src/testFixtures/kotlin/pro/qyoga/tests/fixture/object_mothers/calendars/ical/ICalCalendarsObjectMother.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@ import net.fortuna.ical4j.model.property.RecurrenceId
1010
import net.fortuna.ical4j.model.property.Uid
1111
import pro.azhidkov.platform.kotlin.ifNotNull
1212
import pro.qyoga.i9ns.calendars.ical.model.ICalCalendar
13-
import pro.qyoga.i9ns.calendars.ical.model.ICalCalendarItem
13+
import pro.qyoga.i9ns.calendars.ical.model.ICalZonedCalendarItem
1414
import pro.qyoga.tests.fixture.data.faker
1515
import pro.qyoga.tests.fixture.object_mothers.calendars.CalendarsObjectMother
1616
import pro.qyoga.tests.fixture.object_mothers.therapists.THE_THERAPIST_REF
1717
import java.io.StringWriter
1818
import java.net.URI
19-
import java.time.ZonedDateTime
2019
import java.time.temporal.Temporal
2120

2221

@@ -31,14 +30,14 @@ object ICalCalendarsObjectMother {
3130
)
3231
}
3332

34-
fun aIcsFile(event: ICalCalendarItem<ZonedDateTime>): String {
33+
fun aIcsFile(event: ICalZonedCalendarItem): String {
3534
val calendar = aICalCalendar(event)
3635
val icsFile = StringWriter()
3736
CalendarOutputter().output(calendar, icsFile)
3837
return icsFile.toString()
3938
}
4039

41-
fun aICalCalendar(event: ICalCalendarItem<ZonedDateTime>): Calendar {
40+
fun aICalCalendar(event: ICalZonedCalendarItem): Calendar {
4241
val calendar = Calendar()
4342
.withProdId("-//azhidkov.pro//Trainer Advisor Tests//RU")
4443
.withDefaults()

app/src/testFixtures/kotlin/pro/qyoga/tests/fixture/presets/ICalsCalendarsFixturePresets.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ package pro.qyoga.tests.fixture.presets
22

33
import org.springframework.stereotype.Component
44
import pro.qyoga.i9ns.calendars.ical.model.ICalCalendar
5-
import pro.qyoga.i9ns.calendars.ical.model.ICalCalendarItem
5+
import pro.qyoga.i9ns.calendars.ical.model.ICalZonedCalendarItem
66
import pro.qyoga.tests.fixture.backgrounds.ICalCalendarsBackgrounds
77
import pro.qyoga.tests.fixture.object_mothers.calendars.ical.ICalCalendarsObjectMother.aIcsFile
88
import pro.qyoga.tests.fixture.object_mothers.therapists.THE_THERAPIST_REF
9-
import java.time.ZonedDateTime
109

1110

1211
@Component
@@ -15,7 +14,7 @@ class ICalsCalendarsFixturePresets(
1514
) {
1615

1716
fun createICalCalendarWithSingleEvent(
18-
event: ICalCalendarItem<ZonedDateTime>,
17+
event: ICalZonedCalendarItem,
1918
): ICalCalendar {
2019
val icsFile = aIcsFile(event)
2120

app/src/testFixtures/kotlin/pro/qyoga/tests/pages/therapist/appointments/SchedulePage.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,13 @@ import pro.qyoga.app.therapist.appointments.core.schedule.SchedulePageModel
1515
import pro.qyoga.app.therapist.appointments.core.schedule.TimeMark
1616
import pro.qyoga.core.appointments.core.commands.EditAppointmentRequest
1717
import pro.qyoga.core.appointments.core.model.Appointment
18-
import pro.qyoga.i9ns.calendars.ical.model.ICalCalendarItem
18+
import pro.qyoga.i9ns.calendars.ical.model.ICalZonedCalendarItem
1919
import pro.qyoga.l10n.russianTimeFormat
2020
import pro.qyoga.tests.assertions.*
2121
import pro.qyoga.tests.pages.therapist.appointments.CalendarPage.APPOINTMENT_CARD_SELECTOR
2222
import pro.qyoga.tests.pages.therapist.appointments.google_calendars.GoogleCalendarsSettingsLoaderComponent
2323
import pro.qyoga.tests.platform.html.*
2424
import java.time.LocalTime
25-
import java.time.ZonedDateTime
2625

2726

2827
object CalendarPage : HtmlPage {
@@ -91,7 +90,7 @@ infix fun Element.shouldMatch(app: EditAppointmentRequest) {
9190
.single() shouldHaveClass AppointmentCard.appointmentStatusClasses[app.appointmentStatus]!!
9291
}
9392

94-
infix fun Element.shouldMatch(localizedICalCalendarItem: ICalCalendarItem<ZonedDateTime>) {
93+
infix fun Element.shouldMatch(localizedICalCalendarItem: ICalZonedCalendarItem) {
9594
this shouldHaveComponent Link(
9695
"editAppointmentLink",
9796
CreateAppointmentPageController.addFromSourceItemUri(

0 commit comments

Comments
 (0)