public function testWhenUserIdIsForAnotherUser() { $userId = 9999; $user = new User(); $user->WithId($userId); $this->server->SetQueryString(WebServiceQueryStringKeys::USER_ID, $userId); $this->reservationViewRepository->expects($this->once())->method('GetReservationList')->with($this->anything(), $this->anything(), $this->equalTo($userId))->will($this->returnValue(array())); $this->service->GetReservations(); }
/** * @param User $user * @return int */ public function Add(User $user) { $db = ServiceLocator::GetDatabase(); $id = $db->ExecuteInsert(new RegisterUserCommand($user->Username(), $user->EmailAddress(), $user->FirstName(), $user->LastName(), $user->encryptedPassword, $user->passwordSalt, $user->Timezone(), $user->Language(), $user->Homepage(), $user->GetAttribute(UserAttribute::Phone), $user->GetAttribute(UserAttribute::Organization), $user->GetAttribute(UserAttribute::Position), $user->StatusId(), $user->GetPublicId(), $user->GetDefaultScheduleId())); $user->WithId($id); if (Configuration::Instance()->GetKey(ConfigKeys::REGISTRATION_NOTIFY, new BooleanConverter())) { ServiceLocator::GetEmailService()->Send(new AccountCreationEmail($user)); } foreach ($user->GetAddedAttributes() as $added) { $db->Execute(new AddAttributeValueCommand($added->AttributeId, $added->Value, $user->Id(), CustomAttributeCategory::USER)); } $addedPreferences = $user->GetAddedEmailPreferences(); foreach ($addedPreferences as $event) { $db->Execute(new AddEmailPreferenceCommand($id, $event->EventCategory(), $event->EventType())); } $userGroups = $user->Groups(); if (!empty($userGroups)) { foreach ($userGroups as $group) { $db->Execute(new AddUserGroupCommand($id, $group->GroupId)); } } return $id; }
public function testChangesEmailPreferences() { $id = 123; $user = new User(); $user->WithId($id); $emailPreferences = new EmailPreferences(); $emailPreferences->Add(EventCategory::Reservation, ReservationEvent::Updated); $user->WithEmailPreferences($emailPreferences); $user->ChangeEmailPreference(new ReservationUpdatedEvent(), false); $user->ChangeEmailPreference(new ReservationCreatedEvent(), false); $user->ChangeEmailPreference(new ReservationApprovedEvent(), true); $repo = new UserRepository(); $repo->Update($user); $addEmailPreferenceCommand = new AddEmailPreferenceCommand($id, EventCategory::Reservation, ReservationEvent::Approved); $removeEmailPreferenceCommand = new DeleteEmailPreferenceCommand($id, EventCategory::Reservation, ReservationEvent::Updated); $this->assertTrue($this->db->ContainsCommand($addEmailPreferenceCommand)); $this->assertTrue($this->db->ContainsCommand($removeEmailPreferenceCommand)); }