public function testUpdatesResource()
 {
     $resourceId = 122;
     $request = ResourceRequest::Example();
     $expectedUpdateResource = 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);
     $expectedUpdateResource->SetSortOrder($request->sortOrder);
     $expectedUpdateResource->ChangeStatus($request->statusId, $request->statusReasonId);
     $attributes = array(new AttributeValue($request->customAttributes[0]->attributeId, $request->customAttributes[0]->attributeValue));
     $expectedUpdateResource->ChangeAttributes($attributes);
     $this->validator->expects($this->once())->method('ValidateUpdateRequest')->with($this->equalTo($resourceId), $this->equalTo($request))->will($this->returnValue(array()));
     $this->repository->expects($this->once())->method('Update')->with($this->equalTo($expectedUpdateResource));
     $response = $this->controller->Update($resourceId, $request, $this->session);
     $this->assertTrue($response->WasSuccessful());
     $this->assertEquals($resourceId, $response->ResourceId());
     $this->assertEmpty($response->Errors());
 }
 public function testCanUpdateResource()
 {
     $id = 8383;
     $name = "name";
     $location = "location";
     $contact = "contact";
     $notes = "notes";
     $minLength = 720;
     $maxLength = 727272;
     $autoAssign = 1;
     $requiresApproval = 0;
     $allowMultiday = 1;
     $maxParticipants = 100;
     $minNotice = 11111;
     $maxNotice = 22222;
     $description = "description";
     $scheduleId = 19819;
     $imageName = 'something.png';
     $adminGroupId = 232;
     $allowSubscription = true;
     $sortOrder = 3;
     $resourceTypeId = 111;
     $reasonId = 19;
     $bufferTime = 88881;
     $resource = new BookableResource($id, $name, $location, $contact, $notes, $minLength, $maxLength, $autoAssign, $requiresApproval, $allowMultiday, $maxParticipants, $minNotice, $maxNotice, $description, $scheduleId);
     $resource->SetImage($imageName);
     $resource->ChangeStatus(ResourceStatus::AVAILABLE, $reasonId);
     $resource->SetAdminGroupId($adminGroupId);
     $resource->EnableSubscription();
     $resource->SetSortOrder($sortOrder);
     $resource->SetResourceTypeId($resourceTypeId);
     $resource->SetBufferTime($bufferTime);
     $publicId = $resource->GetPublicId();
     $this->repository->Update($resource);
     $expectedUpdateResourceCommand = new UpdateResourceCommand($id, $name, $location, $contact, $notes, new TimeInterval($minLength), new TimeInterval($maxLength), $autoAssign, $requiresApproval, $allowMultiday, $maxParticipants, new TimeInterval($minNotice), new TimeInterval($maxNotice), $description, $imageName, $scheduleId, $adminGroupId, $allowSubscription, $publicId, $sortOrder, $resourceTypeId, ResourceStatus::AVAILABLE, $reasonId, new TimeInterval($bufferTime));
     $actualUpdateResourceCommand = $this->db->_Commands[0];
     $this->assertEquals($expectedUpdateResourceCommand, $actualUpdateResourceCommand);
 }
Esempio n. 3
0
 /**
  * @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;
 }
Esempio n. 4
0
 /**
  * @param array $row
  * @return BookableResource
  */
 public static function Create($row)
 {
     $resource = new BookableResource($row[ColumnNames::RESOURCE_ID], $row[ColumnNames::RESOURCE_NAME], $row[ColumnNames::RESOURCE_LOCATION], $row[ColumnNames::RESOURCE_CONTACT], $row[ColumnNames::RESOURCE_NOTES], $row[ColumnNames::RESOURCE_MINDURATION], $row[ColumnNames::RESOURCE_MAXDURATION], $row[ColumnNames::RESOURCE_AUTOASSIGN], $row[ColumnNames::RESOURCE_REQUIRES_APPROVAL], $row[ColumnNames::RESOURCE_ALLOW_MULTIDAY], $row[ColumnNames::RESOURCE_MAX_PARTICIPANTS], $row[ColumnNames::RESOURCE_MINNOTICE], $row[ColumnNames::RESOURCE_MAXNOTICE], $row[ColumnNames::RESOURCE_DESCRIPTION], $row[ColumnNames::SCHEDULE_ID]);
     $resource->SetImage($row[ColumnNames::RESOURCE_IMAGE_NAME]);
     $resource->SetAdminGroupId($row[ColumnNames::RESOURCE_ADMIN_GROUP_ID]);
     $resource->SetSortOrder($row[ColumnNames::RESOURCE_SORT_ORDER]);
     $resource->ChangeStatus($row[ColumnNames::RESOURCE_STATUS_ID], $row[ColumnNames::RESOURCE_STATUS_REASON_ID]);
     $resource->WithPublicId($row[ColumnNames::PUBLIC_ID]);
     $resource->WithSubscription($row[ColumnNames::ALLOW_CALENDAR_SUBSCRIPTION]);
     $resource->WithScheduleAdminGroupId($row[ColumnNames::SCHEDULE_ADMIN_GROUP_ID_ALIAS]);
     $resource->SetResourceTypeId($row[ColumnNames::RESOURCE_TYPE_ID]);
     $resource->SetBufferTime($row[ColumnNames::RESOURCE_BUFFER_TIME]);
     return $resource;
 }