public function testDoesNotConflictIfBeingDeletedOrUpdated()
 {
     $now = Date::Now();
     $currentDate = new DateRange($now->AddDays(10), $now->AddDays(15));
     $resourceId = 18;
     $id1 = 100;
     $id2 = 101;
     $currentId = 99;
     $deleted = new TestReservation('ref2', new TestDateRange());
     $deleted->SetReservationId($id1);
     $updated = new TestReservation('ref3', new TestDateRange());
     $updated->SetReservationId($id2);
     $current = new TestReservation('ref', $currentDate);
     $current->SetReservationId($currentId);
     $series = new ExistingReservationSeries();
     $series->WithPrimaryResource(new FakeBookableResource($resourceId));
     $series->WithCurrentInstance($current);
     $series->WithInstance($deleted);
     $series->WithInstance($updated);
     $series->RemoveInstance($deleted);
     $series->UpdateInstance($updated, new DateRange($now->AddDays(20), $now->AddDays(21)));
     $reservations = array(new TestReservationItemView($id1, Date::Now(), Date::Now(), $resourceId), new TestReservationItemView($id2, Date::Now(), Date::Now(), $resourceId));
     $this->strategy->expects($this->exactly(2))->method('GetItemsBetween')->with($this->anything(), $this->anything())->will($this->returnValue($reservations));
     $rule = new ExistingResourceAvailabilityRule($this->strategy, $this->timezone);
     $ruleResult = $rule->Validate($series);
     $this->assertTrue($ruleResult->IsValid());
 }