public function savePreferences($form)
 {
     $repo = new \repositories\UserNotificationPreferenceRepository();
     foreach ($this->preferences as $key => $preference) {
         $repo->editEmailPreference($this->user, $preference->getUserNotificationPreferenceExtensionID(), $preference->getUserNotificationPreferenceType(), $form->get($key)->getData());
     }
 }
 function testSetThenGet()
 {
     $user = new UserAccountModel();
     $user->setEmail("*****@*****.**");
     $user->setUsername("test");
     $user->setPassword("password");
     $userRepo = new UserAccountRepository();
     $userRepo->create($user);
     $prefRepo = new UserNotificationPreferenceRepository();
     ### Set
     $prefRepo->editEmailPreference($user, 'org.openacalendar', 'WatchPrompt', true);
     ### Test
     $pref = $prefRepo->load($user, 'org.openacalendar', 'WatchPrompt');
     $this->assertEquals(true, $pref->getIsEmail());
     $pref = $prefRepo->load($user, 'org.openacalendar', 'WatchNotify');
     $this->assertEquals(true, $pref->getIsEmail());
     ### Set
     $prefRepo->editEmailPreference($user, 'org.openacalendar', 'WatchPrompt', false);
     ### Test
     $pref = $prefRepo->load($user, 'org.openacalendar', 'WatchPrompt');
     $this->assertEquals(false, $pref->getIsEmail());
     $pref = $prefRepo->load($user, 'org.openacalendar', 'WatchNotify');
     $this->assertEquals(true, $pref->getIsEmail());
     ### Set
     $prefRepo->editEmailPreference($user, 'org.openacalendar', 'WatchNotify', false);
     ### Test
     $pref = $prefRepo->load($user, 'org.openacalendar', 'WatchPrompt');
     $this->assertEquals(false, $pref->getIsEmail());
     $pref = $prefRepo->load($user, 'org.openacalendar', 'WatchNotify');
     $this->assertEquals(false, $pref->getIsEmail());
     ### Set
     $prefRepo->editEmailPreference($user, 'org.openacalendar', 'WatchPrompt', true);
     ### Test
     $pref = $prefRepo->load($user, 'org.openacalendar', 'WatchPrompt');
     $this->assertEquals(true, $pref->getIsEmail());
     $pref = $prefRepo->load($user, 'org.openacalendar', 'WatchNotify');
     $this->assertEquals(false, $pref->getIsEmail());
 }