1 package com.atlassian.sal.testresources.usersettings;
2
3 import com.atlassian.fugue.Option;
4 import com.atlassian.sal.api.usersettings.UserSettings;
5 import com.atlassian.sal.api.usersettings.UserSettingsBuilder;
6
7 import java.util.HashMap;
8 import java.util.Map;
9 import java.util.Set;
10
11 public class MockUserSettingsBuilder implements UserSettingsBuilder
12 {
13 private final Map<String, Object> settings = new HashMap<String, Object>();
14
15 public MockUserSettingsBuilder(UserSettings userSettings)
16 {
17 for (String key : userSettings.getKeys())
18 {
19 for (Boolean value : userSettings.getBoolean(key))
20 {
21 settings.put(key, value);
22 }
23 for (String value : userSettings.getString(key))
24 {
25 settings.put(key, value);
26 }
27 for (Long value : userSettings.getLong(key))
28 {
29 settings.put(key, value);
30 }
31 }
32 }
33
34 public MockUserSettingsBuilder()
35 {
36
37 }
38
39 @Override
40 public UserSettingsBuilder put(String key, String value)
41 {
42 settings.put(key, value);
43 return this;
44 }
45
46 @Override
47 public UserSettingsBuilder put(String key, boolean value)
48 {
49 settings.put(key, value);
50 return this;
51 }
52
53 @Override
54 public UserSettingsBuilder put(String key, long value)
55 {
56 settings.put(key, value);
57 return this;
58 }
59
60 @Override
61 public UserSettingsBuilder remove(String key)
62 {
63 settings.remove(key);
64 return this;
65 }
66
67 @Override
68 public Option<Object> get(String key)
69 {
70 return settings.containsKey(key) ? Option.some(settings.get(key)) : Option.none();
71 }
72
73 @Override
74 public Set<String> getKeys()
75 {
76 return settings.keySet();
77 }
78
79 @Override
80 public UserSettings build()
81 {
82 return new MockUserSettings(settings);
83 }
84
85 public static UserSettingsBuilder builder()
86 {
87 return new MockUserSettingsBuilder();
88 }
89
90 public static UserSettingsBuilder builder(UserSettings userSettings)
91 {
92 return new MockUserSettingsBuilder(userSettings);
93 }
94 }