public function testUsesFirstAdditionalResourceIfPrimaryIsRemoved() { $referenceNumber = $this->page->existingReferenceNumber; $builder = new ExistingReservationSeriesBuilder(); $builder->WithPrimaryResource(new FakeBookableResource(100)); $expectedSeries = $builder->Build(); $additionalId = 5; $this->page->resourceId = null; $this->page->resourceIds = array($additionalId); $resource = new FakeBookableResource($additionalId); $this->persistenceService->expects($this->once())->method('LoadByReferenceNumber')->with($this->equalTo($referenceNumber))->will($this->returnValue($expectedSeries)); $this->resourceRepository->expects($this->once())->method('LoadById')->with($this->equalTo($additionalId))->will($this->returnValue($resource)); $existingSeries = $this->presenter->BuildReservation(); $this->assertEquals($resource, $existingSeries->Resource()); }
public function testShowsErrorFileDoesNotBelongToReservation() { $fileId = 110; $resourceId = 1909; $referenceNumber = 'rn'; $seriesId = 1; $fileSeriesId = 2; $builder = new ExistingReservationSeriesBuilder(); $builder->WithId($seriesId); $builder->WithPrimaryResource(new FakeBookableResource($resourceId)); $reservationSeries = $builder->Build(); $reservationAttachment = new FakeReservationAttachment($fileId); $reservationAttachment->SetSeriesId($fileSeriesId); $this->page->expects($this->once())->method('GetFileId')->will($this->returnValue($fileId)); $this->page->expects($this->once())->method('GetReferenceNumber')->will($this->returnValue($referenceNumber)); $this->reservationRepository->expects($this->once())->method('LoadReservationAttachment')->with($this->equalTo($fileId))->will($this->returnValue($reservationAttachment)); $this->reservationRepository->expects($this->once())->method('LoadByReferenceNumber')->with($this->equalTo($referenceNumber))->will($this->returnValue($reservationSeries)); $this->page->expects($this->once())->method('ShowError'); $this->presenter->PageLoad($this->fakeUser); }
Booked Scheduler is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Booked Scheduler. If not, see <http://www.gnu.org/licenses/>. */ define('ROOT_DIR', dirname(__FILE__) . '/../'); require_once ROOT_DIR . "lib/Email/namespace.php"; require_once ROOT_DIR . "lib/Email/Messages/ReservationCreatedEmail.php"; require_once ROOT_DIR . "lib/Email/Messages/ReservationUpdatedEmail.php"; require_once ROOT_DIR . "Domain/namespace.php"; require_once ROOT_DIR . "tests/fakes/namespace.php"; $start = Date::Parse('2010-10-05 03:30:00', 'UTC'); $end = Date::Parse('2010-10-06 13:30:00', 'UTC'); $resourceRepo = new ResourceRepository(); $resources = $resourceRepo->GetResourceList(); $builder = new ExistingReservationSeriesBuilder(); $builder->WithPrimaryResource($resources[1]); $reservation = $builder->Build(); //$reservation->WithCurrentInstance(new TestReservation("ref", new TestDateRange())); //$reservation->Update(1, new FakeBookableResource(1, 'name'), 'crazy title', 'super description', new FakeUserSession()); //$reservation->UpdateDuration(new DateRange($start, $end)); $reservation->Repeats(new RepeatDayOfMonth(1, $end->AddDays(100), new DateRange($start, $end))); $user = new FakeUser(); //$user->SetLanguage('en_gb'); $email = new ReservationUpdatedEmail($user, $reservation, 'en_us', new AttributeRepository()); echo $email->Body(); //$emailService = new EmailService(); //$emailService->Send($email);
public function testWhenApplyingSimpleUpdatesToFullSeriesAndThereIsNoStartTimeConstraint() { $this->fakeConfig->SetSectionKey(ConfigSection::RESERVATION, ConfigKeys::RESERVATION_START_TIME_CONSTRAINT, ReservationStartTimeConstraint::NONE); $timezone = 'UTC'; $currentResource = new FakeBookableResource(8); $newResource = new FakeBookableResource(10); $dateRange = DateRange::Create('2010-01-01 00:00', '2010-01-01 5:00', $timezone); Date::_SetNow(Date::Parse('2010-01-05 2:00', $timezone)); $builder = new ExistingReservationSeriesBuilder(); $builder->WithPrimaryResource($currentResource); $builder->WithCurrentInstance(new TestReservation('1', $dateRange)); $series = $builder->Build(); $series->ApplyChangesTo(SeriesUpdateScope::FullSeries); $series->Update($series->UserId(), $newResource, 'new', 'new', new FakeUserSession()); $this->assertEquals($newResource, $series->Resource()); $this->assertEquals(1, count($series->Instances())); }