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 private final Map<String, UserSettings> settingsMap = new HashMap<>();
15
16 @Override
17 public UserSettings getUserSettings(String userName) {
18 return settingsMap.containsKey(userName) ? settingsMap.get(userName) : settingsMap.put(userName, DefaultUserSettings.builder().build());
19 }
20
21 @Override
22 public UserSettings getUserSettings(UserKey user) {
23 return getUserSettings(user.getStringValue());
24 }
25
26 @Override
27 public void updateUserSettings(String userName, Function<UserSettingsBuilder, UserSettings> updateFunction) {
28 if (settingsMap.containsKey(userName)) {
29 settingsMap.put(userName, updateFunction.apply(DefaultUserSettings.builder(settingsMap.get(userName))));
30 } else {
31 settingsMap.put(userName, updateFunction.apply(DefaultUserSettings.builder()));
32 }
33 }
34
35 @Override
36 public void updateUserSettings(UserKey user, Function<UserSettingsBuilder, UserSettings> updateFunction) {
37 updateUserSettings(user.getStringValue(), updateFunction);
38 }
39 }