private function UpdateProfile(User $user) { $user->ChangeEmailPreference(new ReservationApprovedEvent(), $this->page->GetApproved()); $user->ChangeEmailPreference(new ReservationCreatedEvent(), $this->page->GetCreated()); $user->ChangeEmailPreference(new ReservationUpdatedEvent(), $this->page->GetUpdated()); $user->ChangeEmailPreference(new ReservationDeletedEvent(), $this->page->GetDeleted()); $this->userRepository->Update($user); }
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)); }