mobile/android/tests/background/junit3/src/testhelpers/MockSharedPreferences.java

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 package org.mozilla.gecko.background.testhelpers;
     6 import android.content.SharedPreferences;
     8 import java.util.HashMap;
     9 import java.util.Map;
    10 import java.util.Set;
    12 /**
    13  * A programmable mock content provider.
    14  */
    15 public class MockSharedPreferences implements SharedPreferences, SharedPreferences.Editor {
    16   private HashMap<String, Object> mValues;
    17   private HashMap<String, Object> mTempValues;
    19   public MockSharedPreferences() {
    20     mValues = new HashMap<String, Object>();
    21     mTempValues = new HashMap<String, Object>();
    22   }
    24   public Editor edit() {
    25     return this;
    26   }
    28   public boolean contains(String key) {
    29     return mValues.containsKey(key);
    30   }
    32   public Map<String, ?> getAll() {
    33     return new HashMap<String, Object>(mValues);
    34   }
    36   public boolean getBoolean(String key, boolean defValue) {
    37     if (mValues.containsKey(key)) {
    38       return ((Boolean)mValues.get(key)).booleanValue();
    39     }
    40     return defValue;
    41   }
    43   public float getFloat(String key, float defValue) {
    44     if (mValues.containsKey(key)) {
    45       return ((Float)mValues.get(key)).floatValue();
    46     }
    47     return defValue;
    48   }
    50   public int getInt(String key, int defValue) {
    51     if (mValues.containsKey(key)) {
    52       return ((Integer)mValues.get(key)).intValue();
    53     }
    54     return defValue;
    55   }
    57   public long getLong(String key, long defValue) {
    58     if (mValues.containsKey(key)) {
    59       return ((Long)mValues.get(key)).longValue();
    60     }
    61     return defValue;
    62   }
    64   public String getString(String key, String defValue) {
    65     if (mValues.containsKey(key))
    66       return (String)mValues.get(key);
    67     return defValue;
    68   }
    70   @SuppressWarnings("unchecked")
    71   public Set<String> getStringSet(String key, Set<String> defValues) {
    72     if (mValues.containsKey(key)) {
    73       return (Set<String>) mValues.get(key);
    74     }
    75     return defValues;
    76   }
    78   public void registerOnSharedPreferenceChangeListener(
    79     OnSharedPreferenceChangeListener listener) {
    80     throw new UnsupportedOperationException();
    81   }
    83   public void unregisterOnSharedPreferenceChangeListener(
    84     OnSharedPreferenceChangeListener listener) {
    85     throw new UnsupportedOperationException();
    86   }
    88   public Editor putBoolean(String key, boolean value) {
    89     mTempValues.put(key, Boolean.valueOf(value));
    90     return this;
    91   }
    93   public Editor putFloat(String key, float value) {
    94     mTempValues.put(key, value);
    95     return this;
    96   }
    98   public Editor putInt(String key, int value) {
    99     mTempValues.put(key, value);
   100     return this;
   101   }
   103   public Editor putLong(String key, long value) {
   104     mTempValues.put(key, value);
   105     return this;
   106   }
   108   public Editor putString(String key, String value) {
   109     mTempValues.put(key, value);
   110     return this;
   111   }
   113   public Editor putStringSet(String key, Set<String> values) {
   114     mTempValues.put(key, values);
   115     return this;
   116   }
   118   public Editor remove(String key) {
   119     mTempValues.remove(key);
   120     return this;
   121   }
   123   public Editor clear() {
   124     mTempValues.clear();
   125     return this;
   126   }
   128   @SuppressWarnings("unchecked")
   129   public boolean commit() {
   130     mValues = (HashMap<String, Object>)mTempValues.clone();
   131     return true;
   132   }
   134   public void apply() {
   135     commit();
   136   }
   137 }

mercurial