diff --git a/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/CustomShadowBundle.java b/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/CustomShadowBundle.java new file mode 100644 index 0000000000..55403fb341 --- /dev/null +++ b/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/CustomShadowBundle.java @@ -0,0 +1,50 @@ +/** + * Copyright (C) 2010-2014 eBusiness Information, Excilys Group + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed To in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package org.androidannotations.test15; + +import static org.robolectric.Robolectric.directlyOn; + +import java.util.Arrays; + +import org.robolectric.annotation.Implementation; +import org.robolectric.annotation.Implements; +import org.robolectric.annotation.RealObject; +import org.robolectric.internal.ReflectionHelpers; +import org.robolectric.shadows.ShadowBundle; + +import android.os.Bundle; +import android.os.Parcelable; + +/*** + * Workaround for https://github.com/robolectric/robolectric/issues/1440 + */ +@Implements(Bundle.class) +public class CustomShadowBundle extends ShadowBundle { + + @RealObject + private Bundle realObject; + + @Implementation + public Parcelable[] getParcelableArray(String key) { + Parcelable[] array = directlyOn(realObject, Bundle.class, "getParcelableArray", new ReflectionHelpers.ClassParameter(String.class, key)); + + if (array == null) { + return null; + } + + return Arrays.copyOf(array, array.length, Parcelable[].class); + } +} diff --git a/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/FragmentArgsTest.java b/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/FragmentArgsTest.java index 25ac2b302a..db07a81100 100644 --- a/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/FragmentArgsTest.java +++ b/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/FragmentArgsTest.java @@ -21,9 +21,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; import android.os.Bundle; +@Config(shadows = CustomShadowBundle.class) @RunWith(RobolectricTestRunner.class) public class FragmentArgsTest { diff --git a/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/InjectExtraTest.java b/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/InjectExtraTest.java index b21611a899..db06008165 100644 --- a/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/InjectExtraTest.java +++ b/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/InjectExtraTest.java @@ -24,11 +24,13 @@ import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; import org.robolectric.util.ActivityController; import android.app.Activity; import android.content.Context; +@Config(shadows = CustomShadowBundle.class) @RunWith(RobolectricTestRunner.class) public class InjectExtraTest { diff --git a/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/instancestate/SaveInstanceStateActivityParameterizedTest.java b/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/instancestate/SaveInstanceStateActivityParameterizedTest.java index cc5c53cf42..346f73f8b4 100644 --- a/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/instancestate/SaveInstanceStateActivityParameterizedTest.java +++ b/AndroidAnnotations/functional-test-1-5/src/test/java/org/androidannotations/test15/instancestate/SaveInstanceStateActivityParameterizedTest.java @@ -22,27 +22,30 @@ import java.util.Arrays; import java.util.Collection; +import org.androidannotations.test15.CustomShadowBundle; import org.fest.util.Lists; import org.junit.Test; import org.junit.runner.RunWith; -import org.robolectric.ParameterizedRobolectricTestRunnerWorkaround; import org.robolectric.ParameterizedRobolectricTestRunner.Parameters; +import org.robolectric.ParameterizedRobolectricTestRunnerWorkaround; import org.robolectric.Robolectric; +import org.robolectric.annotation.Config; import android.os.Bundle; +@Config(shadows = CustomShadowBundle.class) @RunWith(ParameterizedRobolectricTestRunnerWorkaround.class) public class SaveInstanceStateActivityParameterizedTest { - + @Parameters(name = "{0}") public static Collection generateTestCases() throws Exception { ArrayList> myGenericParcelableBeanArrayList = new ArrayList>(); - myGenericParcelableBeanArrayList.add(new MyGenericParcelableBean((Integer) 1)); - myGenericParcelableBeanArrayList.add(new MyGenericParcelableBean((Integer) 2)); - myGenericParcelableBeanArrayList.add(new MyGenericParcelableBean((Integer) 3)); - + myGenericParcelableBeanArrayList.add(new MyGenericParcelableBean(1)); + myGenericParcelableBeanArrayList.add(new MyGenericParcelableBean(2)); + myGenericParcelableBeanArrayList.add(new MyGenericParcelableBean(3)); + Object[][] testCases = { // - // + // { "myBoolean", true }, // { "myBooleanArray", new boolean[] { true, false, true } }, // { "myBooleanObject", Boolean.TRUE }, // @@ -83,10 +86,10 @@ public static Collection generateTestCases() throws Exception { { "mySerializableBeanArray", new MySerializableBean[] { new MySerializableBean(5), new MySerializableBean(6) } }, // { "myParcelableBean", new MyParcelableBean(9) }, // { "myParcelableBeanArray", new MyParcelableBean[] { new MyParcelableBean(3), new MyParcelableBean(9) } }, // - { "myGenericSerializableBean", new MyGenericSerializableBean((Integer)3)}, // - { "myGenericSerializableBeanArray", new MyGenericSerializableBean[] {new MyGenericSerializableBean((Integer)3), new MyGenericSerializableBean((Integer)5)} }, // - { "myGenericParcelableBean", new MyGenericParcelableBean("Plop !")}, // - { "myGenericParcelableBeanArray", new MyGenericParcelableBean[] {new MyGenericParcelableBean((Integer)3), new MyGenericParcelableBean((Integer)5)} }, // + { "myGenericSerializableBean", new MyGenericSerializableBean(3) }, // + { "myGenericSerializableBeanArray", new MyGenericSerializableBean[] { new MyGenericSerializableBean(3), new MyGenericSerializableBean(5) } }, // + { "myGenericParcelableBean", new MyGenericParcelableBean("Plop !") }, // + { "myGenericParcelableBeanArray", new MyGenericParcelableBean[] { new MyGenericParcelableBean(3), new MyGenericParcelableBean(5) } }, // { "myParcelableBeanArrayList", Lists.newArrayList(new MyParcelableBean(1), new MyParcelableBean(2), new MyParcelableBean(3)) }, // { "myGenericParcelableBeanArrayList", myGenericParcelableBeanArrayList }, // { "mySerializableBeanArrayList", Lists.newArrayList(new MySerializableBean(1), new MySerializableBean(2), new MySerializableBean(3)) }, //