@Test
fun `movies with different performances are still considered the same movie`() {
- val oldState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "")) }))
- val newState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 15, 14, 30), "")) }))
+ val oldState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", "")) }))
+ val newState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 15, 14, 30), "", "")) }))
val mergedState = merger.mergeStates(oldState, newState) as MovieState
assertThat(mergedState.newMovies, empty())
}
@Test
fun `merging states with movies starting the same day does not create a triggered state`() {
- val oldState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "")) }))
- val newState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 14, 30), "")) }))
+ val oldState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", "")) }))
+ val newState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 14, 30), "", "")) }))
val mergedState = merger.mergeStates(oldState, newState) as MovieState
assertThat(mergedState.triggered(), equalTo(false))
}
@Test
fun `merging states with movies starting on different days does create a triggered state`() {
- val oldState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "")) }))
- val newState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 15, 14, 30), "")) }))
+ val oldState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", "")) }))
+ val newState = MovieState(setOf(Movie("1", "").apply { addPerformance(Performance(LocalDateTime.of(2024, 2, 15, 14, 30), "", "")) }))
val mergedState = merger.mergeStates(oldState, newState) as MovieState
assertThat(mergedState.triggered(), equalTo(true))
}
@Test
fun `merging states where movies have different performances but still on the same day does not create a triggered state`() {
val oldState = MovieState(setOf(Movie("1", "").apply {
- addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 14, 30), ""))
- addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), ""))
+ addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 14, 30), "", ""))
+ addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", ""))
}))
val newState = MovieState(setOf(Movie("1", "").apply {
- addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), ""))
+ addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", ""))
}))
val mergedState = merger.mergeStates(oldState, newState) as MovieState
assertThat(mergedState.triggered(), equalTo(false))
@Test
fun `merging states where movies have different performances and are not on the same day anymore does create a triggered state`() {
val oldState = MovieState(setOf(Movie("1", "").apply {
- addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), ""))
- addPerformance(Performance(LocalDateTime.of(2024, 2, 15, 14, 30), ""))
+ addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", ""))
+ addPerformance(Performance(LocalDateTime.of(2024, 2, 15, 14, 30), "", ""))
}))
val newState = MovieState(setOf(Movie("1", "").apply {
- addPerformance(Performance(LocalDateTime.of(2024, 2, 15, 14, 30), ""))
+ addPerformance(Performance(LocalDateTime.of(2024, 2, 15, 14, 30), "", ""))
}))
val mergedState = merger.mergeStates(oldState, newState) as MovieState
assertThat(mergedState.triggered(), equalTo(true))