1 package com.atlassian.sal.testresources.usersettings;
2
3 import com.atlassian.sal.api.user.UserKey;
4 import com.atlassian.sal.api.usersettings.UserSettings;
5 import com.atlassian.sal.api.usersettings.UserSettingsBuilder;
6 import com.atlassian.sal.api.usersettings.UserSettingsService;
7 import com.atlassian.sal.core.usersettings.DefaultUserSettings;
8 import com.google.common.base.Function;
9
10 import java.util.HashMap;
11 import java.util.Map;
12
13 public class MockUserSettingsService implements UserSettingsService
14 {
15 private final Map<String, UserSettings> settingsMap = new HashMap<String, UserSettings>();
16
17 @Override
18 public UserSettings getUserSettings(String userName)
19 {
20 return settingsMap.containsKey(userName) ? settingsMap.get(userName) : settingsMap.put(userName, DefaultUserSettings.builder().build());
21 }
22
23 @Override
24 public UserSettings getUserSettings(UserKey user)
25 {
26 return getUserSettings(user.getStringValue());
27 }
28
29 @Override
30 public void updateUserSettings(String userName, Function<UserSettingsBuilder, UserSettings> updateFunction)
31 {
32 if (settingsMap.containsKey(userName))
33 {
34 settingsMap.put(userName, updateFunction.apply(DefaultUserSettings.builder(settingsMap.get(userName))));
35 }
36 else
37 {
38 settingsMap.put(userName, updateFunction.apply(DefaultUserSettings.builder()));
39 }
40 }
41
42 @Override
43 public void updateUserSettings(UserKey user, Function<UserSettingsBuilder, UserSettings> updateFunction)
44 {
45 updateUserSettings(user.getStringValue(), updateFunction);
46 }
47 }