Added a little more to ShadowPreference
diff --git a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPreference.java b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPreference.java
index 5ec8aeb..fddf216 100644
--- a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPreference.java
+++ b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPreference.java
@@ -15,6 +15,7 @@
protected int defStyle;
protected boolean shouldPersist = false;
protected int persistedInt;
+ protected Object callChangeListenerValue = null;
public void __constructor__(Context context, AttributeSet attrs, int defStyle) {
this.context = context;
@@ -54,7 +55,19 @@
return shouldPersist ? persistedInt : defaultReturnValue;
}
- public void setPersistedInt(int persistedInt) {
- this.persistedInt = persistedInt;
+ @Implementation
+ public boolean persistInt(int value) {
+ this.persistedInt = value;
+ return shouldPersist;
+ }
+
+ @Implementation
+ public boolean callChangeListener(Object newValue) {
+ callChangeListenerValue = newValue;
+ return true;
+ }
+
+ public Object getCallChangeListenerValue() {
+ return callChangeListenerValue;
}
}
diff --git a/src/test/java/com/xtremelabs/robolectric/shadows/PreferenceTest.java b/src/test/java/com/xtremelabs/robolectric/shadows/PreferenceTest.java
index 7f45519..477aabb 100644
--- a/src/test/java/com/xtremelabs/robolectric/shadows/PreferenceTest.java
+++ b/src/test/java/com/xtremelabs/robolectric/shadows/PreferenceTest.java
@@ -68,7 +68,7 @@
int[] values = { 0, 1, 2, 2011 };
for(int persistedInt : values) {
- shadow.setPersistedInt(persistedInt);
+ shadow.persistInt(persistedInt);
shadow.setShouldPersist(false);
assertThat(preference.getPersistedInt(defaultValue), equalTo(defaultValue));
@@ -78,6 +78,16 @@
}
}
+ @Test
+ public void testCallChangeListener() {
+ Integer[] values = { 0, 1, 2, 2011 };
+
+ for(Integer newValue : values) {
+ assertThat(preference.callChangeListener(newValue), equalTo(true));
+ assertThat(shadow.getCallChangeListenerValue(), sameInstance((Object)newValue));
+ }
+ }
+
private static class TestPreference extends Preference {
public TestPreference(Context context, AttributeSet attrs, int defStyle) {
@@ -95,5 +105,13 @@
public int getPersistedInt(int defaultReturnValue) {
return super.getPersistedInt(defaultReturnValue);
}
+
+ public boolean persistInt(int value) {
+ return super.persistInt(value);
+ }
+
+ public boolean callChangeListener(Object newValue) {
+ return super.callChangeListener(newValue);
+ }
}
}