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())); }
private function CreateDeleteService(ReservationValidationRuleProcessor $ruleProcessor, UserSession $userSession) { $ruleProcessor->AddRule(new AdminExcludedRule(new CurrentUserIsReservationUserRule($userSession), $userSession, $this->userRepository)); return new DeleteReservationValidationService($ruleProcessor); }