public function testValidatesStopsAfterFirstBrokenRule()
 {
     $reservation = new ExistingReservationSeries();
     $rule1 = $this->getMock('IUpdateReservationValidationRule');
     $rule2 = $this->getMock('IUpdateReservationValidationRule');
     $rule3 = $this->getMock('IUpdateReservationValidationRule');
     $rules = array($rule1, $rule2, $rule3);
     $rule1->expects($this->once())->method('Validate')->with($this->equalTo($reservation))->will($this->returnValue(new ReservationRuleResult()));
     $error = 'something went wrong';
     $rule2->expects($this->once())->method('Validate')->with($this->equalTo($reservation))->will($this->returnValue(new ReservationRuleResult(false, $error)));
     $vs = new ReservationValidationRuleProcessor($rules);
     $result = $vs->Validate($reservation);
     $this->assertEquals(false, $result->CanBeSaved());
     $actualErrors = $result->GetErrors();
     $this->assertEquals($error, $actualErrors[0]);
     $this->assertEquals(0, count($result->GetWarnings()));
 }
Example #2
0
 private function CreateDeleteService(ReservationValidationRuleProcessor $ruleProcessor, UserSession $userSession)
 {
     $ruleProcessor->AddRule(new AdminExcludedRule(new CurrentUserIsReservationUserRule($userSession), $userSession, $this->userRepository));
     return new DeleteReservationValidationService($ruleProcessor);
 }