@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", "", "", listOf(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", "")))))
+ val newState = MovieState(setOf(Movie("1", "", "", listOf(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", "", "", listOf(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", "")))))
+ val newState = MovieState(setOf(Movie("1", "", "", listOf(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", "", "", listOf(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", "")))))
+ val newState = MovieState(setOf(Movie("1", "", "", listOf(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), "", ""))
- }))
- val newState = MovieState(setOf(Movie("1", "").apply {
- addPerformance(Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", ""))
- }))
+ val oldState = MovieState(setOf(Movie("1", "", "", listOf(
+ Performance(LocalDateTime.of(2024, 2, 14, 14, 30), "", ""),
+ Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", "")
+ ))))
+ val newState = MovieState(setOf(Movie("1", "", "", listOf(
+ 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), "", ""))
- }))
- val newState = MovieState(setOf(Movie("1", "").apply {
- addPerformance(Performance(LocalDateTime.of(2024, 2, 15, 14, 30), "", ""))
- }))
+ val oldState = MovieState(setOf(Movie("1", "", "", listOf(
+ Performance(LocalDateTime.of(2024, 2, 14, 18, 45), "", ""),
+ Performance(LocalDateTime.of(2024, 2, 15, 14, 30), "", "")
+ ))))
+ val newState = MovieState(setOf(Movie("1", "", "", listOf(
+ Performance(LocalDateTime.of(2024, 2, 15, 14, 30), "", "")
+ ))))
val mergedState = merger.mergeStates(oldState, newState) as MovieState
assertThat(mergedState.triggered(), equalTo(true))
}