/** * @param ResourceRequest $request * @return array */ private function ValidateCommon($request) { if (empty($request)) { return array('Request was not properly formatted'); } $errors = array(); $validators[] = new RequestRequiredValueValidator($request->name, 'name'); $validators[] = new RequestRequiredValueValidator($request->scheduleId, 'scheduleId'); $validators[] = new TimeIntervalValidator($request->minLength, 'minLength'); $validators[] = new TimeIntervalValidator($request->maxLength, 'maxLength'); $validators[] = new TimeIntervalValidator($request->minNotice, 'minNotice'); $validators[] = new TimeIntervalValidator($request->maxNotice, 'maxNotice'); $attributes = array(); foreach ($request->GetCustomAttributes() as $attribute) { $attributes[] = new AttributeValue($attribute->attributeId, $attribute->attributeValue); } $validators[] = new AttributeValidator($this->attributeService, CustomAttributeCategory::RESOURCE, $attributes); /** @var IValidator $validator */ foreach ($validators as $validator) { $validator->Validate(); if (!$validator->IsValid()) { foreach ($validator->Messages() as $message) { $errors[] = $message; } } } return $errors; }
public function testUpdateAndDeleteRequireResourceId() { $request = ResourceRequest::Example(); $request->customAttributes = null; $deleteErrors = $this->validator->ValidateDeleteRequest(null); $updateErrors = $this->validator->ValidateUpdateRequest('', $request); $this->assertEquals(1, count($deleteErrors)); $this->assertEquals(1, count($updateErrors)); }
public function testWhenUpdateValidationFails() { $resourceId = 123; $errors = array('something failed'); $request = ResourceRequest::Example(); $this->validator->expects($this->once())->method('ValidateUpdateRequest')->with($this->anything(), $this->anything())->will($this->returnValue($errors)); $response = $this->controller->Update($resourceId, $request, $this->session); $this->assertFalse($response->WasSuccessful()); $this->assertNull($response->ResourceId()); $this->assertEquals($errors, $response->Errors()); }
/** * @param ResourceRequest $request * @param int $resourceId * @return BookableResource */ private function BuildResource($request, $resourceId) { $resource = new BookableResource($resourceId, $request->name, $request->location, $request->contact, $request->notes, $request->minLength, $request->maxLength, $request->autoAssignPermissions, $request->requiresApproval, $request->allowMultiday, $request->maxParticipants, $request->minNotice, $request->maxNotice, $request->description, $request->scheduleId); $resource->SetSortOrder($request->sortOrder); $attributes = array(); foreach ($request->GetCustomAttributes() as $attribute) { $attributes[] = new AttributeValue($attribute->attributeId, $attribute->attributeValue); } $resource->ChangeAttributes($attributes); if (isset($request->statusId)) { $resource->ChangeStatus($request->statusId, $request->statusReasonId); } return $resource; }