diff --git a/lib/android/app/build.gradle b/lib/android/app/build.gradle index 59723b25c85..d8d95234552 100644 --- a/lib/android/app/build.gradle +++ b/lib/android/app/build.gradle @@ -105,7 +105,7 @@ dependencies { if ("Playground".toLowerCase() == rootProject.name.toLowerCase()) { // tests only for our playground testImplementation 'junit:junit:4.13.2' - testImplementation "org.robolectric:robolectric:4.7.2" + testImplementation "org.robolectric:robolectric:4.14.1" testImplementation 'org.assertj:assertj-core:3.11.1' testImplementation 'org.mockito:mockito-core:4.0.0' testImplementation 'com.squareup.assertj:assertj-android:1.2.0' diff --git a/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactComponentViewCreator.java b/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactComponentViewCreator.java index 303b62c0bda..fa7cecc57cc 100644 --- a/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactComponentViewCreator.java +++ b/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactComponentViewCreator.java @@ -1,13 +1,12 @@ package com.reactnativenavigation.react; -import android.app.Activity; +import android.content.Context; -import com.facebook.react.ReactInstanceManager; import com.reactnativenavigation.viewcontrollers.viewcontroller.ReactViewCreator; public class ReactComponentViewCreator implements ReactViewCreator { @Override - public ReactView create(final Activity activity, final String componentId, final String componentName) { - return new ReactView(activity, componentId, componentName); + public ReactView create(final Context context, final String componentId, final String componentName) { + return new ReactView(context, componentId, componentName); } } diff --git a/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ReactViewCreator.java b/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ReactViewCreator.java index 44a85a6284d..6ed167c5faa 100644 --- a/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ReactViewCreator.java +++ b/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ReactViewCreator.java @@ -1,8 +1,8 @@ package com.reactnativenavigation.viewcontrollers.viewcontroller; -import android.app.Activity; +import android.content.Context; public interface ReactViewCreator { - IReactView create(Activity activity, String componentId, String componentName); + IReactView create(Context context, String componentId, String componentName); } diff --git a/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentViewCreator.java b/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentViewCreator.java index 8f29a00204c..89191163878 100644 --- a/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentViewCreator.java +++ b/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentViewCreator.java @@ -1,17 +1,16 @@ package com.reactnativenavigation.views.component; -import android.app.Activity; +import android.content.Context; -import com.facebook.react.ReactInstanceManager; -import com.reactnativenavigation.viewcontrollers.viewcontroller.IReactView; -import com.reactnativenavigation.viewcontrollers.viewcontroller.ReactViewCreator; import com.reactnativenavigation.react.ReactComponentViewCreator; import com.reactnativenavigation.react.ReactView; +import com.reactnativenavigation.viewcontrollers.viewcontroller.IReactView; +import com.reactnativenavigation.viewcontrollers.viewcontroller.ReactViewCreator; public class ComponentViewCreator implements ReactViewCreator { @Override - public IReactView create(Activity activity, String componentId, String componentName) { - ReactView reactView = new ReactComponentViewCreator().create(activity, componentId, componentName); - return new ComponentLayout(activity, reactView); + public IReactView create(Context context, String componentId, String componentName) { + ReactView reactView = new ReactComponentViewCreator().create(context, componentId, componentName); + return new ComponentLayout(context, reactView); } } diff --git a/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBarBackgroundViewCreator.java b/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBarBackgroundViewCreator.java index 9ea75cb0348..d47d36d5157 100644 --- a/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBarBackgroundViewCreator.java +++ b/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBarBackgroundViewCreator.java @@ -1,14 +1,13 @@ package com.reactnativenavigation.views.stack.topbar; -import android.app.Activity; +import android.content.Context; -import com.facebook.react.ReactInstanceManager; import com.reactnativenavigation.viewcontrollers.viewcontroller.ReactViewCreator; public class TopBarBackgroundViewCreator implements ReactViewCreator { @Override - public TopBarBackgroundView create(Activity activity, String componentId, String componentName) { - return new TopBarBackgroundView(activity, componentId, componentName); + public TopBarBackgroundView create(Context context, String componentId, String componentName) { + return new TopBarBackgroundView(context, componentId, componentName); } } diff --git a/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactViewCreator.java b/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactViewCreator.java index be12b593b49..041d43eef2a 100644 --- a/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactViewCreator.java +++ b/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleBarReactViewCreator.java @@ -1,14 +1,13 @@ package com.reactnativenavigation.views.stack.topbar.titlebar; -import android.app.Activity; +import android.content.Context; -import com.facebook.react.ReactInstanceManager; import com.reactnativenavigation.viewcontrollers.viewcontroller.ReactViewCreator; public class TitleBarReactViewCreator implements ReactViewCreator { @Override - public TitleBarReactView create(Activity activity, String componentId, String componentName) { - return new TitleBarReactView(activity, componentId, componentName); + public TitleBarReactView create(Context context, String componentId, String componentName) { + return new TitleBarReactView(context, componentId, componentName); } } diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/BaseRobolectricTest.kt b/lib/android/app/src/test/java/com/reactnativenavigation/BaseRobolectricTest.kt new file mode 100644 index 00000000000..0d8ce7aea37 --- /dev/null +++ b/lib/android/app/src/test/java/com/reactnativenavigation/BaseRobolectricTest.kt @@ -0,0 +1,36 @@ +package com.reactnativenavigation + +import android.content.Context +import android.content.res.Configuration +import android.content.res.Resources +import org.junit.Before +import org.junit.runner.RunWith +import org.mockito.ArgumentMatchers +import org.mockito.Mockito.mock +import org.mockito.kotlin.any +import org.mockito.kotlin.whenever +import org.robolectric.RobolectricTestRunner +import org.robolectric.RuntimeEnvironment +import org.robolectric.annotation.Config + + +@RunWith(RobolectricTestRunner::class) +@Config(application = TestApplication::class) +abstract class BaseRobolectricTest { + + val context: Context = RuntimeEnvironment.getApplication() + lateinit var mockConfiguration: Configuration + + + @Before + open fun beforeEach() { + NavigationApplication.instance = mock(NavigationApplication::class.java) + mockConfiguration = mock(Configuration::class.java) + val res: Resources = mock(Resources::class.java) + mockConfiguration.uiMode = Configuration.UI_MODE_NIGHT_NO + whenever(res.getConfiguration()).thenReturn(mockConfiguration) + whenever(NavigationApplication.instance.resources).thenReturn(res) + whenever(res.getColor(ArgumentMatchers.anyInt())).thenReturn(0x00000) + whenever(res.getColor(ArgumentMatchers.anyInt(), any())).thenReturn(0x00000) + } +} \ No newline at end of file diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/EnvironmentTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/EnvironmentTest.java index 991a387d252..04dc43159b6 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/EnvironmentTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/EnvironmentTest.java @@ -10,10 +10,7 @@ import static org.assertj.core.api.Java6Assertions.*; -import com.reactnativenavigation.R; - -@Ignore("New architecture - WIP") -public class EnvironmentTest extends BaseTest { +public class EnvironmentTest extends BaseRobolectricTest { @Test public void assertJ() { assertThat(1 + 2).isEqualTo(3).isGreaterThan(2).isLessThan(4).isNotNegative().isPositive().isNotZero(); @@ -41,6 +38,6 @@ public void androidR() { @Test public void ableToLoadApplication() throws Exception { - assertThat(RuntimeEnvironment.application).isNotNull(); + assertThat(getContext()).isNotNull(); } } diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentViewCreator.java b/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentViewCreator.java index 26a5b83f18a..8c9a0d1d3dd 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentViewCreator.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentViewCreator.java @@ -1,18 +1,18 @@ package com.reactnativenavigation.mocks; -import android.app.Activity; +import static org.mockito.Mockito.spy; + +import android.content.Context; import com.reactnativenavigation.react.ReactView; import com.reactnativenavigation.viewcontrollers.viewcontroller.ReactViewCreator; import com.reactnativenavigation.views.component.ComponentLayout; import com.reactnativenavigation.views.component.ReactComponent; -import static org.mockito.Mockito.spy; - public class TestComponentViewCreator implements ReactViewCreator { @Override - public ReactComponent create(final Activity activity, final String componentId, final String componentName) { - ReactView reactView = spy(new TestReactView(activity)); - return new ComponentLayout(activity, reactView); + public ReactComponent create(final Context context, final String componentId, final String componentName) { + ReactView reactView = spy(new TestReactView(context)); + return new ComponentLayout(context, reactView); } } diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/options/LayoutNodeParserTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/options/LayoutNodeParserTest.java index 0b8232f4794..695314c7651 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/options/LayoutNodeParserTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/options/LayoutNodeParserTest.java @@ -8,8 +8,7 @@ import static org.assertj.core.api.Java6Assertions.*; -@Ignore("New architecture - WIP") -public class LayoutNodeParserTest extends BaseTest { +public class LayoutNodeParserTest extends BaseRobolectricTest { @Test public void dto() throws Exception { LayoutNode node = new LayoutNode("the id", LayoutNode.Type.Component); diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/options/OptionsTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/options/OptionsTest.java index 73034e1aa75..dcb367696b0 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/options/OptionsTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/options/OptionsTest.java @@ -1,10 +1,9 @@ package com.reactnativenavigation.options; -import android.app.Activity; import android.graphics.Color; import android.graphics.Typeface; -import com.reactnativenavigation.BaseTest; +import com.reactnativenavigation.BaseRobolectricTest; import com.reactnativenavigation.options.params.Bool; import com.reactnativenavigation.options.params.Colour; import com.reactnativenavigation.options.params.NullText; @@ -15,7 +14,6 @@ import org.json.JSONException; import org.json.JSONObject; -import org.junit.Ignore; import org.junit.Test; import org.mockito.Mockito; import org.mockito.stubbing.Answer; @@ -25,8 +23,7 @@ import static org.assertj.core.api.Java6Assertions.assertThat; import static org.mockito.Mockito.when; -@Ignore("New architecture - WIP") -public class OptionsTest extends BaseTest { +public class OptionsTest extends BaseRobolectricTest { private static final String TITLE = "the title"; private static final Number TITLE_HEIGHT = new Number(100); @@ -59,12 +56,10 @@ public class OptionsTest extends BaseTest { private static final String BOTTOM_TABS_CURRENT_TAB_ID = "ComponentId"; private static final Number BOTTOM_TABS_CURRENT_TAB_INDEX = new Number(1); private TypefaceLoader mockLoader; - private Activity activity; @Override public void beforeEach() { super.beforeEach(); - activity = newActivity(); mockLoader = Mockito.mock(TypefaceLoader.class); when(mockLoader.getTypeFace("HelveticaNeue-Condensed", null, null, null)).then((Answer) invocation -> SUBTITLE_TYPEFACE); when(mockLoader.getTypeFace("HelveticaNeue-CondensedBold", null, null, null)).then((Answer) invocation -> TOP_BAR_TYPEFACE); @@ -86,7 +81,7 @@ public void parsesJson() throws Exception { .put("fab", createFab()) .put("bottomTabs", createBottomTabs()) .put("layout", layout); - Options result = Options.parse(activity, mockLoader, json); + Options result = Options.parse(getContext(), mockLoader, json); assertResult(result); } @@ -220,12 +215,12 @@ private JSONObject createOtherBottomTabs() throws JSONException { public void mergeDoesNotMutate() throws Exception { JSONObject json1 = new JSONObject(); json1.put("topBar", createTopBar(true)); - Options options1 = Options.parse(activity, mockLoader, json1); + Options options1 = Options.parse(getContext(), mockLoader, json1); options1.topBar.title.text = new Text("some title"); JSONObject json2 = new JSONObject(); json2.put("topBar", createTopBar(false)); - Options options2 = Options.parse(activity, mockLoader, json2); + Options options2 = Options.parse(getContext(), mockLoader, json2); options2.topBar.title.text = new NullText(); Options merged = options1.mergeWith(options2); @@ -243,7 +238,7 @@ public void mergeDefaultOptions() throws Exception { .put("fab", createFab()) .put("bottomTabs", createBottomTabs()) .put("layout", layout); - Options defaultOptions = Options.parse(activity, mockLoader, json); + Options defaultOptions = Options.parse(getContext(), mockLoader, json); Options options = new Options(); assertResult(options.mergeWith(defaultOptions)); @@ -258,12 +253,12 @@ public void mergedDefaultOptionsDontOverrideGivenOptions() throws Exception { .put("fab", createOtherFab()) .put("bottomTabs", createOtherBottomTabs()) .put("layout", layout); - Options defaultOptions = Options.parse(activity, mockLoader, defaultJson); + Options defaultOptions = Options.parse(getContext(), mockLoader, defaultJson); JSONObject json = new JSONObject() .put("topBar", createTopBar(TOP_BAR_VISIBLE.get())) .put("bottomTabs", createBottomTabs()); - Options options = Options.parse(activity, mockLoader, json); + Options options = Options.parse(getContext(), mockLoader, json); options.withDefaultOptions(defaultOptions); assertResult(options); } diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt b/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt index eb084f1705b..f5693cfee2f 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt +++ b/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt @@ -1,15 +1,13 @@ package com.reactnativenavigation.options -import org.mockito.kotlin.mock -import org.mockito.kotlin.whenever -import com.reactnativenavigation.BaseTest +import com.reactnativenavigation.BaseRobolectricTest import org.assertj.core.api.Assertions.assertThat import org.json.JSONArray import org.json.JSONObject -import org.junit.Ignore import org.junit.Test +import org.mockito.kotlin.mock +import org.mockito.kotlin.whenever -@Ignore("New architecture - WIP") -class TransitionAnimationOptionsTest : BaseTest() { +class TransitionAnimationOptionsTest : BaseRobolectricTest() { lateinit var uut: TransitionAnimationOptions @Test diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/BoolParserTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/BoolParserTest.java index 54344f15054..9d9c1eea6cc 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/BoolParserTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/BoolParserTest.java @@ -1,16 +1,14 @@ package com.reactnativenavigation.options.parsers; -import com.reactnativenavigation.BaseTest; +import static org.assertj.core.api.Java6Assertions.assertThat; + +import com.reactnativenavigation.BaseRobolectricTest; import org.json.JSONException; import org.json.JSONObject; -import org.junit.Ignore; import org.junit.Test; -import static org.assertj.core.api.Java6Assertions.assertThat; - -@Ignore("New architecture - WIP") -public class BoolParserTest extends BaseTest { +public class BoolParserTest extends BaseRobolectricTest { @Test public void parse() throws JSONException { diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java index 5e9dee4d1ed..27fe5f954a3 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java @@ -1,33 +1,23 @@ package com.reactnativenavigation.options.parsers; +import static org.assertj.core.api.Java6Assertions.assertThat; + import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.JavaOnlyArray; import com.facebook.react.bridge.JavaOnlyMap; -import com.reactnativenavigation.BaseTest; +import com.reactnativenavigation.BaseRobolectricTest; import com.reactnativenavigation.options.params.DontApplyColour; import com.reactnativenavigation.options.params.ReactPlatformColor; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import org.junit.Ignore; import org.junit.Test; import org.mockito.MockedStatic; import org.mockito.Mockito; -import static org.assertj.core.api.Java6Assertions.assertThat; - -import android.app.Activity; - -@Ignore("New architecture - WIP") -public class ColorParseTest extends BaseTest { - Activity activity; - @Override - public void beforeEach() { - super.beforeEach(); - activity = newActivity(); - } +public class ColorParseTest extends BaseRobolectricTest { @Test public void nullIsParsedAsNoColor() throws JSONException { @@ -46,7 +36,7 @@ public void shouldParsePlatformColors() throws JSONException { try (MockedStatic theMock = Mockito.mockStatic(Arguments.class)) { theMock.when(Arguments::createMap).thenReturn(new JavaOnlyMap()); theMock.when(Arguments::createArray).thenReturn(new JavaOnlyArray()); - assertThat(ColorParser.parse(activity, color, "color")).isInstanceOf(ReactPlatformColor.class); + assertThat(ColorParser.parse(getContext(), color, "color")).isInstanceOf(ReactPlatformColor.class); } } } diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/JSONParserTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/JSONParserTest.java index 0246dd92f07..ed668833608 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/JSONParserTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/JSONParserTest.java @@ -1,18 +1,16 @@ package com.reactnativenavigation.options.parsers; +import static org.assertj.core.api.Java6Assertions.assertThat; + import com.facebook.react.bridge.JavaOnlyArray; import com.facebook.react.bridge.JavaOnlyMap; -import com.reactnativenavigation.BaseTest; +import com.reactnativenavigation.BaseRobolectricTest; import org.json.JSONArray; import org.json.JSONObject; -import org.junit.Ignore; import org.junit.Test; -import static org.assertj.core.api.Java6Assertions.assertThat; - -@Ignore("New architecture - WIP") -public class JSONParserTest extends BaseTest { +public class JSONParserTest extends BaseRobolectricTest { @Test public void parsesMap() throws Exception { JavaOnlyMap input = new JavaOnlyMap(); diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonSpanTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonSpanTest.java index c8437d1912b..c3d0d399d99 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonSpanTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonSpanTest.java @@ -1,10 +1,11 @@ package com.reactnativenavigation.utils; -import android.app.Activity; +import static org.assertj.core.api.Java6Assertions.assertThat; + import android.graphics.Color; import android.graphics.Paint; -import com.reactnativenavigation.BaseTest; +import com.reactnativenavigation.BaseRobolectricTest; import com.reactnativenavigation.mocks.TypefaceLoaderMock; import com.reactnativenavigation.options.ButtonOptions; import com.reactnativenavigation.options.params.Colour; @@ -13,24 +14,19 @@ import com.reactnativenavigation.viewcontrollers.stack.topbar.button.ButtonSpan; import org.jetbrains.annotations.NotNull; -import org.junit.Ignore; import org.junit.Test; import org.robolectric.annotation.Config; -import static org.assertj.core.api.Java6Assertions.assertThat; - -@Ignore("New architecture - WIP") @Config(qualifiers = "xhdpi") -public class ButtonSpanTest extends BaseTest { +public class ButtonSpanTest extends BaseRobolectricTest { private ButtonSpan uut; private ButtonOptions button; - private Activity activity; @Override public void beforeEach() { + super.beforeEach(); button = createButton(); - activity = newActivity(); - uut = new ButtonSpan(activity, button, new TypefaceLoaderMock()); + uut = new ButtonSpan(getContext(), button, new TypefaceLoaderMock()); } @Test @@ -47,7 +43,7 @@ public void apply_fontSizeIsAppliedInDp() { Paint paint = new Paint(); uut.apply(paint); - assertThat(paint.getTextSize()).isEqualTo(UiUtils.dpToPx(activity, 14)); + assertThat(paint.getTextSize()).isEqualTo(UiUtils.dpToPx(getContext(), 14)); } @NotNull diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/utils/CompatUtilsTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/utils/CompatUtilsTest.java index cea035d3ed2..2ccaaa895ae 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/utils/CompatUtilsTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/utils/CompatUtilsTest.java @@ -6,11 +6,10 @@ import static org.assertj.core.api.Java6Assertions.*; -@Ignore("New architecture - WIP") -public class CompatUtilsTest extends BaseTest { +public class CompatUtilsTest extends BaseRobolectricTest { @Test - public void generateViewId() throws Exception { + public void generateViewId() { assertThat(CompatUtils.generateViewId()) .isPositive() .isNotEqualTo(CompatUtils.generateViewId()); diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/utils/ReflectionUtilsTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/utils/ReflectionUtilsTest.java index 90579486b53..b9254b4401e 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/utils/ReflectionUtilsTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/utils/ReflectionUtilsTest.java @@ -6,8 +6,7 @@ import static org.assertj.core.api.Java6Assertions.*; -@Ignore("New architecture - WIP") -public class ReflectionUtilsTest extends BaseTest { +public class ReflectionUtilsTest extends BaseRobolectricTest { static class Foo { private String bar = "old value"; diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/utils/StringUtilsTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/utils/StringUtilsTest.java index a22047eb9c7..0c80e0aa62f 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/utils/StringUtilsTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/utils/StringUtilsTest.java @@ -6,10 +6,9 @@ import static org.assertj.core.api.Java6Assertions.*; -@Ignore("New architecture - WIP") -public class StringUtilsTest extends BaseTest { +public class StringUtilsTest extends BaseRobolectricTest { @Test - public void isEqual() throws Exception { + public void isEqual() { assertThat(StringUtils.isEqual(null, "a")).isFalse(); assertThat(StringUtils.isEqual("a", null)).isFalse(); assertThat(StringUtils.isEqual("a", "b")).isFalse(); diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt b/lib/android/app/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt index 8cdf9abc046..ab0ae901e33 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt +++ b/lib/android/app/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt @@ -2,16 +2,14 @@ package com.reactnativenavigation.utils import android.graphics.Color import android.view.Window -import com.reactnativenavigation.BaseTest +import com.reactnativenavigation.BaseRobolectricTest import com.reactnativenavigation.utils.SystemUiUtils.STATUS_BAR_HEIGHT_TRANSLUCENCY -import org.junit.Ignore import org.junit.Test import org.mockito.Mockito import org.mockito.kotlin.verify import kotlin.math.ceil -@Ignore("New architecture - WIP") -class SystemUiUtilsTest : BaseTest() { +class SystemUiUtilsTest : BaseRobolectricTest() { @Test fun `setStatusBarColor - should change color considering alpha`() { diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleAndButtonsMeasurer.kt b/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleAndButtonsMeasurer.kt index 36666e4f947..50ead44aed9 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleAndButtonsMeasurer.kt +++ b/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleAndButtonsMeasurer.kt @@ -1,16 +1,15 @@ package com.reactnativenavigation.utils -import com.reactnativenavigation.BaseTest +import com.reactnativenavigation.BaseRobolectricTest import com.reactnativenavigation.views.stack.topbar.titlebar.DEFAULT_LEFT_MARGIN_PX +import com.reactnativenavigation.views.stack.topbar.titlebar.resolveHorizontalTitleBoundsLimit import com.reactnativenavigation.views.stack.topbar.titlebar.resolveLeftButtonsBounds import com.reactnativenavigation.views.stack.topbar.titlebar.resolveRightButtonsBounds -import com.reactnativenavigation.views.stack.topbar.titlebar.resolveHorizontalTitleBoundsLimit -import org.junit.Ignore import org.junit.Test import kotlin.test.assertEquals -@Ignore("New architecture - WIP") -class TitleAndButtonsMeasurer : BaseTest() { + +class TitleAndButtonsMeasurer : BaseRobolectricTest() { private val parentWidth = 1080 @Test diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java index 6f7e9b1b58e..4014835b7b4 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java @@ -7,11 +7,10 @@ import static org.mockito.Mockito.*; -@Ignore("New architecture - WIP") -public class UiThreadTest extends BaseTest { +public class UiThreadTest extends BaseRobolectricTest { @Test - public void postOnUiThread() throws Exception { + public void postOnUiThread() { Runnable task = mock(Runnable.class); ShadowLooper.pauseMainLooper(); UiThread.post(task); @@ -21,7 +20,7 @@ public void postOnUiThread() throws Exception { } @Test - public void postDelayedOnUiThread() throws Exception { + public void postDelayedOnUiThread() { Runnable task = mock(Runnable.class); UiThread.postDelayed(task, 1000); verifyNoInteractions(task); diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java index 4362ce9d847..60447c768ff 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java @@ -1,6 +1,5 @@ package com.reactnativenavigation.utils; -import android.view.*; import com.reactnativenavigation.*; @@ -8,16 +7,17 @@ import static org.mockito.Mockito.*; -@Ignore("New architecture - WIP") -public class UiUtilsTest extends BaseTest { +import android.view.View; + +public class UiUtilsTest extends BaseRobolectricTest { @Test public void runOnPreDrawOnce() { - View view = new View(newActivity()); + View view = new View(getContext()); Runnable task = mock(Runnable.class); verifyNoInteractions(task); UiUtils.runOnPreDrawOnce(view, task); - dispatchPreDraw(view); + view.getViewTreeObserver().dispatchOnPreDraw(); verify(task, times(1)).run(); } } diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/IdStackTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/IdStackTest.java index 2dfc37f5fea..7689e6caa9f 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/IdStackTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/IdStackTest.java @@ -6,8 +6,7 @@ import static org.assertj.core.api.Java6Assertions.*; -@Ignore("New architecture - WIP") -public class IdStackTest extends BaseTest { +public class IdStackTest extends BaseRobolectricTest { private IdStack uut; diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt b/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt index 2d06a57808f..5e22db102d0 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +++ b/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt @@ -67,8 +67,8 @@ class StackPresenterTest : BaseTest() { super.beforeEach() activity = spy(newActivity()) val titleViewCreator: TitleBarReactViewCreatorMock = object : TitleBarReactViewCreatorMock() { - override fun create(activity: Activity, componentId: String, componentName: String): TitleBarReactView { - reactTitleView = spy(super.create(activity, componentId, componentName)) + override fun create(context: Context, componentId: String, componentName: String): TitleBarReactView { + reactTitleView = spy(super.create(context, componentId, componentName)) return reactTitleView } }