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); }
/** * @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; }
/** * @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; }