public function __construct(ExistingReservationSeries $series) { foreach ($series->Accessories() as $accessory) { $this->Accessories[] = new ReservationAccessoryView($accessory->AccessoryId, $accessory->QuantityReserved, $accessory->Name, null); } foreach ($series->AdditionalResources() as $resource) { $this->AdditionalResourceIds[] = $resource->GetId(); } foreach ($series->AddedAttachments() as $attachment) { $this->Attachments[] = new ReservationAttachmentView($attachment->FileId(), $series->SeriesId(), $attachment->FileName()); } foreach ($series->AttributeValues() as $av) { $this->Attributes[] = $av; } $this->Description = $series->Description(); $this->EndDate = $series->CurrentInstance()->EndDate(); $this->OwnerId = $series->UserId(); $this->ReferenceNumber = $series->CurrentInstance()->ReferenceNumber(); $this->ReservationId = $series->CurrentInstance()->ReservationId(); $this->ResourceId = $series->ResourceId(); foreach ($series->AllResources() as $resource) { $this->Resources[] = new ReservationResourceView($resource->GetId(), $resource->GetName(), $resource->GetAdminGroupId(), $resource->GetScheduleId(), $resource->GetScheduleAdminGroupId(), $resource->GetStatusId()); } $this->ScheduleId = $series->ScheduleId(); $this->SeriesId = $series->SeriesId(); $this->StartDate = $series->CurrentInstance()->StartDate(); $this->StatusId = $series->StatusId(); }
public function testApproveUpdatesStateAndFiresEvent() { $series = new ExistingReservationSeries(); $series->WithStatus(ReservationStatus::Pending); $series->Approve($this->fakeUser); $events = $series->GetEvents(); $this->assertEquals(ReservationStatus::Created, $series->StatusId()); $this->assertTrue(in_array(new SeriesApprovedEvent($series), $events)); }