Skip to content
This repository was archived by the owner on Feb 17, 2020. It is now read-only.

Commit 6bc5490

Browse files
committed
Use more rigorous date parsing for fixtures, fix tests again
1 parent 0e4a234 commit 6bc5490

4 files changed

Lines changed: 62 additions & 37 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package net.squanchy
2+
3+
import org.joda.time.DateTime
4+
import org.joda.time.DateTimeZone
5+
6+
val A_DATE = DateTime("2018-04-19T02:20:00Z")
7+
val A_TIMEZONE = DateTimeZone.forID("Europe/Rome")!!

app/src/test/java/net/squanchy/schedule/domain/view/ScheduleFixtures.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package net.squanchy.schedule.domain.view
22

3+
import net.squanchy.A_DATE
4+
import net.squanchy.A_TIMEZONE
35
import net.squanchy.eventdetails.domain.view.ExperienceLevel
46
import net.squanchy.speaker.domain.view.Speaker
57
import net.squanchy.speaker.domain.view.aSpeaker
68
import net.squanchy.support.lang.Optional
7-
import org.joda.time.DateTime
89
import org.joda.time.DateTimeZone
910
import org.joda.time.LocalDate
1011
import org.joda.time.LocalDateTime
1112

12-
private val A_DATE = DateTime("2018-04-19T02:20:00Z")
13-
private val A_TIMEZONE = DateTimeZone.forID("Europe/Rome")
14-
1513
fun aSchedule(
1614
pages: List<SchedulePage> = listOf(aSchedulePage()),
1715
timezone: DateTimeZone = A_TIMEZONE
Lines changed: 52 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
package net.squanchy.service.firebase
22

33
import com.google.common.truth.Truth.assertThat
4+
import net.squanchy.A_DATE
5+
import net.squanchy.A_TIMEZONE
46
import net.squanchy.eventdetails.domain.view.ExperienceLevel
57
import net.squanchy.schedule.domain.view.Event
68
import net.squanchy.support.checksum.Checksum
7-
import org.joda.time.DateTimeZone
8-
import org.joda.time.LocalDateTime
99
import org.junit.Before
1010
import org.junit.Rule
1111
import org.junit.Test
1212
import org.mockito.Mock
1313
import org.mockito.Mockito.`when`
1414
import org.mockito.junit.MockitoJUnit
1515
import org.mockito.junit.MockitoRule
16-
import java.util.Date
1716

1817
private const val A_VALUE = "whatever"
1918
private const val A_CHECKSUM = 1000L
@@ -30,113 +29,136 @@ class FirestoreEventMapperTest {
3029
@Mock
3130
private lateinit var checksum: Checksum
3231

33-
private lateinit var timeZone: DateTimeZone
34-
3532
@Before
3633
fun before() {
3734
`when`(checksum.getChecksumOf(A_VALUE)).thenReturn(A_CHECKSUM)
38-
timeZone = DateTimeZone.UTC
3935
}
4036

4137
@Test
4238
fun `event id should match when mapped`() {
4339
val firestoreEvent = aFirestoreEvent(id = A_VALUE)
44-
val event = firestoreEvent.toEvent(checksum, timeZone)
45-
assertThat(A_VALUE).isEqualTo(event.id)
40+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
41+
assertThat(event.id).isEqualTo(A_VALUE)
4642
}
4743

4844
@Test
4945
fun `event start date should match when mapped`() {
50-
val date = Date(1518471471)
51-
val firestoreEvent = aFirestoreEvent(startTime = date)
52-
val event = firestoreEvent.toEvent(checksum, timeZone)
53-
assertThat(LocalDateTime(date)).isEqualTo(event.startTime)
46+
val firestoreEvent = aFirestoreEvent(startTime = A_DATE.toDate())
47+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
48+
assertThat(event.startTime).isEqualTo(A_DATE.toDateTime(A_TIMEZONE).toLocalDateTime())
5449
}
5550

5651
@Test
5752
fun `event end date should match when mapped`() {
58-
val date = Date(1518471471)
59-
val firestoreEvent = aFirestoreEvent(endTime = date)
60-
val event = firestoreEvent.toEvent(checksum, timeZone)
61-
assertThat(LocalDateTime(date)).isEqualTo(event.endTime)
53+
val firestoreEvent = aFirestoreEvent(endTime = A_DATE.toDate())
54+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
55+
assertThat(event.endTime).isEqualTo(A_DATE.toDateTime(A_TIMEZONE).toLocalDateTime())
6256
}
6357

6458
@Test
6559
fun `event title should match when mapped`() {
6660
val firestoreEvent = aFirestoreEvent(title = A_VALUE)
67-
val event = firestoreEvent.toEvent(checksum, timeZone)
68-
assertThat(A_VALUE).isEqualTo(event.title)
61+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
62+
assertThat(event.title).isEqualTo(A_VALUE)
6963
}
7064

7165
@Test
7266
fun `event place should match when mapped`() {
7367
val firestorePlace = aFirestorePlace()
7468
val firestoreEvent = aFirestoreEvent(place = firestorePlace)
75-
val event = firestoreEvent.toEvent(checksum, timeZone)
69+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
7670
assertThat(firestorePlace.toPlace()).isEqualTo(event.place.get())
7771
}
7872

7973
@Test
8074
fun `event place should be absent when mapping null`() {
8175
val firestoreEvent = aFirestoreEvent(place = null)
82-
val event = firestoreEvent.toEvent(checksum, timeZone)
76+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
8377
assertThat(event.place.isPresent).isFalse()
8478
}
8579

8680
@Test
8781
fun `event track should match when mapped`() {
8882
val firestoreTrack = aFirestoreTrack()
8983
val firestoreEvent = aFirestoreEvent(track = firestoreTrack)
90-
val event = firestoreEvent.toEvent(checksum, timeZone)
84+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
9185
assertThat(firestoreTrack.toTrack(checksum)).isEqualTo(event.track.get())
9286
}
9387

9488
@Test
9589
fun `event track should be absent when mapping null`() {
9690
val firestoreEvent = aFirestoreEvent(track = null)
97-
val event = firestoreEvent.toEvent(checksum, timeZone)
91+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
9892
assertThat(event.track.isPresent).isFalse()
9993
}
10094

10195
@Test
10296
fun `event experience level should match when mapped`() {
10397
val firestoreEvent = aFirestoreEvent(experienceLevel = FAKE_EXPERIENCE_LEVEL)
104-
val event = firestoreEvent.toEvent(checksum, timeZone)
98+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
10599
assertThat(ExperienceLevel.tryParsingFrom(FAKE_EXPERIENCE_LEVEL)).isEqualTo(event.experienceLevel)
106100
}
107101

108102
@Test
109103
fun `event experience level should be absent when mapping null`() {
110104
val firestoreEvent = aFirestoreEvent(experienceLevel = null)
111-
val event = firestoreEvent.toEvent(checksum, timeZone)
105+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
112106
assertThat(event.experienceLevel.isPresent).isFalse()
113107
}
114108

115109
@Test
116110
fun `event timezone should match the parameter when mapped`() {
117111
val firestoreEvent = aFirestoreEvent()
118-
val event = firestoreEvent.toEvent(checksum, timeZone)
119-
assertThat(event.timeZone).isEqualTo(timeZone)
112+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
113+
assertThat(event.timeZone).isEqualTo(A_TIMEZONE)
120114
}
121115

122116
@Test
123117
fun `event description should match when mapped`() {
124118
val firestoreEvent = aFirestoreEvent(description = A_VALUE)
125-
val event = firestoreEvent.toEvent(checksum, timeZone)
126-
assertThat(A_VALUE).isEqualTo(event.description.get())
119+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
120+
assertThat(event.description.get()).isEqualTo(A_VALUE)
127121
}
128122

129123
@Test
130124
fun `event description should be absent when mapping null`() {
131125
val firestoreEvent = aFirestoreEvent(description = null)
132-
val event = firestoreEvent.toEvent(checksum, timeZone)
126+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
133127
assertThat(event.description.isPresent).isFalse()
134128
}
135129

136130
@Test
137131
fun `event type should match when mapped`() {
138132
val firestoreEvent = aFirestoreEvent(type = FAKE_TYPE)
139-
val event = firestoreEvent.toEvent(checksum, timeZone)
133+
val event = firestoreEvent.toEvent(checksum, A_TIMEZONE)
140134
assertThat(Event.Type.fromRawType(FAKE_TYPE)).isEqualTo(event.type)
141135
}
136+
137+
@Test
138+
fun `place floor should match when mapped`() {
139+
val firestorePlace = aFirestorePlace()
140+
val place = firestorePlace.toPlace()
141+
assertThat(place.floor.get()).isEqualTo(firestorePlace.floor)
142+
}
143+
144+
@Test
145+
fun `place floor should be absent when mapping null`() {
146+
val firestorePlace = aFirestorePlace(floor = null)
147+
val place = firestorePlace.toPlace()
148+
assertThat(place.floor.isPresent).isFalse()
149+
}
150+
151+
@Test
152+
fun `place id should match when mapped`() {
153+
val firestorePlace = aFirestorePlace()
154+
val place = firestorePlace.toPlace()
155+
assertThat(place.id).isEqualTo(firestorePlace.id)
156+
}
157+
158+
@Test
159+
fun `place name should match when mapped`() {
160+
val firestorePlace = aFirestorePlace()
161+
val place = firestorePlace.toPlace()
162+
assertThat(place.name).isEqualTo(firestorePlace.name)
163+
}
142164
}

app/src/test/java/net/squanchy/service/firebase/FirestoreFixtures.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package net.squanchy.service.firebase
22

33
import com.google.firebase.firestore.GeoPoint
4+
import net.squanchy.A_DATE
45
import net.squanchy.service.firebase.model.conferenceinfo.FirestoreConferenceInfo
56
import net.squanchy.service.firebase.model.conferenceinfo.FirestoreVenue
67
import net.squanchy.service.firebase.model.schedule.FirestoreDay
@@ -9,11 +10,8 @@ import net.squanchy.service.firebase.model.schedule.FirestorePlace
910
import net.squanchy.service.firebase.model.schedule.FirestoreSchedulePage
1011
import net.squanchy.service.firebase.model.schedule.FirestoreSpeaker
1112
import net.squanchy.service.firebase.model.schedule.FirestoreTrack
12-
import org.joda.time.DateTime
1313
import java.util.Date
1414

15-
private val A_DATE = DateTime("2018-04-19T02:20:00Z")
16-
1715
fun aFirestoreTrack(
1816
id: String = "a track id",
1917
name: String = "a track name",

0 commit comments

Comments
 (0)