commit | 6b08d4a6ad51681fda133201d540cfed97a8d042 | [log] [tgz] |
---|---|---|
author | Christian Williams <christianw@google.com> | Fri Feb 01 13:50:07 2019 -0800 |
committer | Christian Williams <christianw@google.com> | Fri Feb 01 14:41:17 2019 -0800 |
tree | d1fdf77fb5959faa63b8bd4bf8df8463fc798798 | |
parent | 5876c47078551a3365a95a40e9eb470a9ac5b8cc [diff] |
ShadowPickers must be deterministic. ShadowPickers must always return the same value within the same Environment.
diff --git a/robolectric/src/main/java/org/robolectric/internal/AndroidSandbox.java b/robolectric/src/main/java/org/robolectric/internal/AndroidSandbox.java index 94279f6..6a8d78f 100755 --- a/robolectric/src/main/java/org/robolectric/internal/AndroidSandbox.java +++ b/robolectric/src/main/java/org/robolectric/internal/AndroidSandbox.java
@@ -33,4 +33,9 @@ public Environment getEnvironment() { return environment; } + + @Override + public String toString() { + return "AndroidSandbox[SDK " + sdk + "]"; + } }
diff --git a/sandbox/src/main/java/org/robolectric/internal/bytecode/ShadowMap.java b/sandbox/src/main/java/org/robolectric/internal/bytecode/ShadowMap.java index 6939d06..f1649cc 100644 --- a/sandbox/src/main/java/org/robolectric/internal/bytecode/ShadowMap.java +++ b/sandbox/src/main/java/org/robolectric/internal/bytecode/ShadowMap.java
@@ -4,7 +4,6 @@ import java.lang.reflect.InvocationTargetException; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; import java.util.Set; import org.robolectric.annotation.Implements; @@ -153,9 +152,7 @@ } } - HashSet<String> classNames = new HashSet<>(invalidated.keySet()); - classNames.addAll(shadowPickers.keySet()); - return classNames; + return invalidated.keySet(); } /**
diff --git a/shadowapi/src/main/java/org/robolectric/shadow/api/ShadowPicker.java b/shadowapi/src/main/java/org/robolectric/shadow/api/ShadowPicker.java index 9bd6ede..c27d925 100644 --- a/shadowapi/src/main/java/org/robolectric/shadow/api/ShadowPicker.java +++ b/shadowapi/src/main/java/org/robolectric/shadow/api/ShadowPicker.java
@@ -1,5 +1,12 @@ package org.robolectric.shadow.api; public interface ShadowPicker<T> { + + /** + * Determines the shadow class to be used depending on the configuration of the + * {@link org.robolectric.internal.Environment}. Must be deterministic. + * + * @return the shadow class to be used + */ Class<? extends T> pickShadowClass(); }