public function testWhenChangingTimeToFutureInstances() { $currentSeriesDate = new DateRange(Date::Now()->AddDays(1), Date::Now()->AddDays(2)); $oldDates = $currentSeriesDate->AddDays(-4); $oldReservation = new TestReservation('old', $oldDates, 1); $currentInstance = new TestReservation('current', $currentSeriesDate, 2); $futureDates1 = $currentSeriesDate->AddDays(1); $futureReservation1 = new TestReservation('new1', $futureDates1, 3); $futureDates2 = $currentSeriesDate->AddDays(10); $futureReservation2 = new TestReservation('new2', $futureDates2, 4); $builder = new ExistingReservationSeriesBuilder(); $builder->WithCurrentInstance($currentInstance); $builder->WithInstance($oldReservation); $builder->WithInstance($futureReservation1); $builder->WithInstance($futureReservation2); $series = $builder->Build(); // updates $series->ApplyChangesTo(SeriesUpdateScope::FutureInstances); $series->UpdateDuration($currentSeriesDate->AddDays(1)); //$instances = $series->Instances(); $events = $series->GetEvents(); //$this->assertEquals(1, count($events)); $this->assertTrue(in_array(new InstanceUpdatedEvent($currentInstance, $series), $events)); $this->assertTrue(in_array(new InstanceUpdatedEvent($futureReservation1, $series), $events)); $this->assertTrue(in_array(new InstanceUpdatedEvent($futureReservation2, $series), $events)); }