public function testAddsAndUpdatesUserPreferences()
 {
     $userId = 987;
     $user = new User();
     $user->WithId($userId);
     $preferences = new UserPreferences();
     $preferences->Add('pref1', 'val1');
     $preferences->Add('pref2', 'val2');
     $user->WithPreferences($preferences);
     $user->ChangePreference('pref2', 'val3');
     $user->ChangePreference('pref3', 'val4');
     $repo = new UserRepository();
     $repo->Update($user);
     $this->assertTrue($this->db->ContainsCommand(new UpdateUserPreferenceCommand($userId, 'pref2', 'val3')));
     $this->assertTrue($this->db->ContainsCommand(new AddUserPreferenceCommand($userId, 'pref3', 'val4')));
 }