public function Create($request, $session) { $errors = $this->validator->ValidateCreateRequest($request); if (!empty($errors)) { return new ResourceControllerResult(null, $errors); } $newResource = BookableResource::CreateNew($request->name, $request->scheduleId, $request->autoAssignPermissions, $request->sortOrder); $resourceId = $this->repository->Add($newResource); $resource = $this->BuildResource($request, $resourceId); $this->repository->Update($resource); return new ResourceControllerResult($resourceId, null); }
public function testAddsNewResource() { $resourceId = 122; $request = ResourceRequest::Example(); $expectedCreateResource = BookableResource::CreateNew($request->name, $request->scheduleId, $request->autoAssignPermissions, $request->sortOrder); $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('ValidateCreateRequest')->with($this->equalTo($request))->will($this->returnValue(array())); $this->repository->expects($this->once())->method('Add')->with($this->equalTo($expectedCreateResource))->will($this->returnValue($resourceId)); $this->repository->expects($this->once())->method('Update')->with($this->equalTo($expectedUpdateResource)); $response = $this->controller->Create($request, $this->session); $this->assertTrue($response->WasSuccessful()); $this->assertEquals($resourceId, $response->ResourceId()); $this->assertEmpty($response->Errors()); }
$resources = array(); $db = ServiceLocator::GetDatabase(); // USERS $db->Execute(new AdHocCommand("delete from users where fname ='load' and lname = 'test'")); $userRepo = new UserRepository(); for ($i = 0; $i < $numberOfUsers; $i++) { $user = User::Create("load{$i}", "test{$i}", "email {$i}", "username {$i}", "en_us", "America/Chicago", "7b6aec38ff9b7650d64d0374194307bdde711425", "3b3dbb9b"); $userId = $userRepo->Add($user); $users[] = $user; } echo "Loaded {$numberOfUsers} users<br/>"; // RESOURCES $db->Execute(new AdHocCommand("delete from resources where name like 'load%'")); $resourceRepo = new ResourceRepository(); for ($i = 0; $i < $numberOfResources; $i++) { $resource = BookableResource::CreateNew("load{$i}", 1); $resourceId = $resourceRepo->Add($resource); $resources[] = $resource; } echo "Loaded {$numberOfResources} resources<br/>"; // ACCESSORIES $db->Execute(new AdHocCommand("delete from accessories where accessory_name like 'load%'")); $accessoryRepo = new AccessoryRepository(); for ($i = 0; $i < $numberOfAccessories; $i++) { $accessory = new Accessory(0, "Load {$i}", 10); $id = $accessoryRepo->Add($accessory); } echo "Loaded {$numberOfAccessories} accessories<br/>"; // RESERVATIONS $db->Execute(new AdHocCommand("delete from reservation_series where title like 'load%'")); $scheduleRepo = new ScheduleRepository();
public function Add() { $name = $this->page->GetResourceName(); $scheduleId = $this->page->GetScheduleId(); $autoAssign = $this->page->GetAutoAssign(); $resourceAdminGroupId = $this->page->GetAdminGroupId(); Log::Debug("Adding new resource with name: %s, scheduleId: %s, autoAssign: %s, resourceAdminGroupId %s", $name, $scheduleId, $autoAssign, $resourceAdminGroupId); $resource = BookableResource::CreateNew($name, $scheduleId, $autoAssign); $resource->SetAdminGroupId($resourceAdminGroupId); $this->resourceRepository->Add($resource); }
public function testDeletingAResourceRemovesAllAssociatedData() { $resourceId = 100; $resource = BookableResource::CreateNew('name', 1); $resource->SetResourceId($resourceId); $this->repository->Delete($resource); $deleteReservations = new DeleteResourceReservationsCommand($resourceId); $deleteResources = new DeleteResourceCommand($resourceId); $actualDeleteReservations = $this->db->_Commands[0]; $actualDeleteResources = $this->db->_Commands[1]; $this->assertEquals($deleteReservations, $actualDeleteReservations); $this->assertEquals($deleteResources, $actualDeleteResources); }