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'))); }