1 /*
2  * Copyright (C) 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.cellbroadcastreceiver.unit;
17 
18 import android.content.SharedPreferences;
19 
20 import java.util.HashMap;
21 import java.util.Map;
22 import java.util.Set;
23 
24 /**
25  * Class to create fake SharedPreferences.
26  */
27 public class FakeSharedPreferences implements SharedPreferences, SharedPreferences.Editor {
28     private HashMap<String, Object> mValues = new HashMap<String, Object>();
29 
getValueCount()30     public int getValueCount() {
31         return mValues.size();
32     }
33 
34     @Override
edit()35     public Editor edit() {
36         return this;
37     }
38 
39     @Override
contains(String key)40     public boolean contains(String key) {
41         return mValues.containsKey(key);
42     }
43 
44     @Override
getAll()45     public Map<String, ?> getAll() {
46         return new HashMap<String, Object>(mValues);
47     }
48 
49     @Override
getBoolean(String key, boolean defValue)50     public boolean getBoolean(String key, boolean defValue) {
51         if (mValues.containsKey(key)) {
52             return ((Boolean) mValues.get(key)).booleanValue();
53         }
54         return defValue;
55     }
56 
57     @Override
getFloat(String key, float defValue)58     public float getFloat(String key, float defValue) {
59         if (mValues.containsKey(key)) {
60             return ((Float) mValues.get(key)).floatValue();
61         }
62         return defValue;
63     }
64 
65     @Override
getInt(String key, int defValue)66     public int getInt(String key, int defValue) {
67         if (mValues.containsKey(key)) {
68             return ((Integer) mValues.get(key)).intValue();
69         }
70         return defValue;
71     }
72 
73     @Override
getLong(String key, long defValue)74     public long getLong(String key, long defValue) {
75         if (mValues.containsKey(key)) {
76             return ((Long) mValues.get(key)).longValue();
77         }
78         return defValue;
79     }
80 
81     @Override
getString(String key, String defValue)82     public String getString(String key, String defValue) {
83         if (mValues.containsKey(key)) return (String) mValues.get(key);
84         else return defValue;
85     }
86 
87     @SuppressWarnings("unchecked")
88     @Override
getStringSet(String key, Set<String> defValues)89     public Set<String> getStringSet(String key, Set<String> defValues) {
90         if (mValues.containsKey(key)) {
91             return (Set<String>) mValues.get(key);
92         }
93         return defValues;
94     }
95 
96     @Override
registerOnSharedPreferenceChangeListener( OnSharedPreferenceChangeListener listener)97     public void registerOnSharedPreferenceChangeListener(
98             OnSharedPreferenceChangeListener listener) {
99         throw new UnsupportedOperationException();
100     }
101 
102     @Override
unregisterOnSharedPreferenceChangeListener( OnSharedPreferenceChangeListener listener)103     public void unregisterOnSharedPreferenceChangeListener(
104             OnSharedPreferenceChangeListener listener) {
105         throw new UnsupportedOperationException();
106     }
107 
108     @Override
putBoolean(String key, boolean value)109     public Editor putBoolean(String key, boolean value) {
110         mValues.put(key, Boolean.valueOf(value));
111         return this;
112     }
113 
114     @Override
putFloat(String key, float value)115     public Editor putFloat(String key, float value) {
116         mValues.put(key, value);
117         return this;
118     }
119 
120     @Override
putInt(String key, int value)121     public Editor putInt(String key, int value) {
122         mValues.put(key, value);
123         return this;
124     }
125 
126     @Override
putLong(String key, long value)127     public Editor putLong(String key, long value) {
128         mValues.put(key, value);
129         return this;
130     }
131 
132     @Override
putString(String key, String value)133     public Editor putString(String key, String value) {
134         mValues.put(key, value);
135         return this;
136     }
137 
138     @Override
putStringSet(String key, Set<String> values)139     public Editor putStringSet(String key, Set<String> values) {
140         mValues.put(key, values);
141         return this;
142     }
143 
144     @Override
remove(String key)145     public Editor remove(String key) {
146         mValues.remove(key);
147         return this;
148     }
149 
150     @Override
clear()151     public Editor clear() {
152         mValues.clear();
153         return this;
154     }
155 
156     @Override
commit()157     public boolean commit() {
158         return true;
159     }
160 
161     @Override
apply()162     public void apply() {
163         commit();
164     }
165 }
166