public void assertEquals(FakeExtractorOutput expected) { assertThat(numberOfTracks).isEqualTo(expected.numberOfTracks); assertThat(tracksEnded).isEqualTo(expected.tracksEnded); if (expected.seekMap == null) { assertThat(seekMap).isNull(); } else { // TODO: Bulk up this check if possible. assertThat(seekMap).isNotNull(); assertThat(seekMap.getClass()).isEqualTo(expected.seekMap.getClass()); assertThat(seekMap.isSeekable()).isEqualTo(expected.seekMap.isSeekable()); assertThat(seekMap.getSeekPoints(0)).isEqualTo(expected.seekMap.getSeekPoints(0)); } for (int i = 0; i < numberOfTracks; i++) { assertThat(trackOutputs.keyAt(i)).isEqualTo(expected.trackOutputs.keyAt(i)); trackOutputs.valueAt(i).assertEquals(expected.trackOutputs.valueAt(i)); } }
@Test public void findPlugin_shouldPickHighestPriorityClass() throws Exception { pluginClasses.addAll(asList(ImplMinus1.class, ImplZeroA.class, ImplOne.class, ImplZeroB.class)); assertThat(pluginFinder.findPlugin(Iface.class)) .isEqualTo(ImplOne.class); }
@Test @Config(minSdk = LOLLIPOP) public void shouldSetView_withLayoutId() throws Exception { AlertDialog.Builder builder = new AlertDialog.Builder(application); builder.setView(R.layout.custom_layout); AlertDialog alert = builder.create(); View view = shadowOf(alert).getView(); assertThat(view.getClass()).isEqualTo(CustomView.class); }
@Test public void shouldReturnWifiInfo() { assertThat(wifiManager.getConnectionInfo().getClass()).isEqualTo(WifiInfo.class); }
@Test public void shouldConvertFromMethodSignature() throws Exception { InvocationProfile profile = new InvocationProfile("android/view/View/invalidate()V", false, getClass().getClassLoader()); assertThat(profile.clazz).isEqualTo(View.class); assertThat(profile.methodName).isEqualTo("invalidate"); assertThat(profile.isStatic).isEqualTo(false); assertThat(profile.paramTypes).isEmpty(); }
@Test public void setupWithBundle_callsLifecycleMethodsAndMakesVisible() { controller.setup(new Bundle()); assertThat(transcript).containsAllOf("onCreate", "onStart", "onRestoreInstanceState", "onPostCreate", "onResume", "onPostResume"); assertThat(controller.get().getWindow().getDecorView().getParent().getClass()).isEqualTo( ViewRootImpl.class); }
@Test public void setup_callsLifecycleMethodsAndMakesVisible() { controller.setup(); assertThat(transcript).containsAllOf("onCreate", "onStart", "onPostCreate", "onResume", "onPostResume"); assertThat(controller.get().getWindow().getDecorView().getParent().getClass()).isEqualTo( ViewRootImpl.class); }
@Override public boolean test(Throwable throwable) throws Exception { ApolloNetworkException e = (ApolloNetworkException) throwable; assertThat(e.getMessage()).isEqualTo("Failed to execute http call"); assertThat(e.getCause().getClass()).isEqualTo(SocketTimeoutException.class); return true; } });
@Override public boolean test(Throwable throwable) throws Exception { ApolloParseException e = (ApolloParseException) throwable; assertThat(e.getMessage()).isEqualTo("Failed to parse http response"); assertThat(e.getCause().getClass()).isEqualTo(JsonEncodingException.class); return true; } });
@Test public void shouldHandleParamTypes() throws Exception { InvocationProfile profile = new InvocationProfile("android/view/View/invalidate(I[ZLjava/lang/String;)Lwhatever/Foo;", false, getClass().getClassLoader()); assertThat(profile.clazz).isEqualTo(View.class); assertThat(profile.methodName).isEqualTo("invalidate"); assertThat(profile.isStatic).isEqualTo(false); assertThat(profile.paramTypes).asList().containsExactly("int", "boolean[]", "java.lang.String"); } }
@Test public void visible_addsTheDecorViewToTheWindowManager() { controller.create().visible(); assertThat( controller.get().getWindow().getDecorView().getParent().getClass()).isEqualTo( ViewRootImpl.class); }
@Override public boolean test(Throwable throwable) throws Exception { ApolloNetworkException e = (ApolloNetworkException) throwable; assertThat(e.getMessage()).isEqualTo("Failed to execute http call"); assertThat(e.getCause().getClass()).isEqualTo(SocketTimeoutException.class); return true; } });
public void assertEquals(FakeExtractorOutput expected) { assertThat(numberOfTracks).isEqualTo(expected.numberOfTracks); assertThat(tracksEnded).isEqualTo(expected.tracksEnded); if (expected.seekMap == null) { assertThat(seekMap).isNull(); } else { // TODO: Bulk up this check if possible. assertThat(seekMap).isNotNull(); assertThat(seekMap.getClass()).isEqualTo(expected.seekMap.getClass()); assertThat(seekMap.isSeekable()).isEqualTo(expected.seekMap.isSeekable()); assertThat(seekMap.getSeekPoints(0)).isEqualTo(expected.seekMap.getSeekPoints(0)); } for (int i = 0; i < numberOfTracks; i++) { assertThat(trackOutputs.keyAt(i)).isEqualTo(expected.trackOutputs.keyAt(i)); trackOutputs.valueAt(i).assertEquals(expected.trackOutputs.valueAt(i)); } }
@Test public void shouldPreferPluginsOverConcreteClass() throws Exception { PluginFinder pluginFinder = new PluginFinder(new MyServiceFinderAdapter(pluginClasses)); Injector injector = new Builder(null, pluginFinder).build(); pluginClasses.add(SubclassOfConcreteThing.class); ConcreteThing instance = injector.getInstance(ConcreteThing.class); assertThat(instance.getClass()).isEqualTo(SubclassOfConcreteThing.class); }
@Test public void whenMissingManifestFile_getPackageName_shouldBeDefault() throws Exception { AndroidManifest appManifest = new AndroidManifest(null, resourceFile("res"), resourceFile("assets"), null); assertThat(appManifest.getPackageName()).isEqualTo("org.robolectric.default"); assertThat(appManifest.getRClass()).isEqualTo(null); }
@Test public void whenNullManifestFile_getRClass_shouldComeFromPackageName() throws Exception { AndroidManifest appManifest = new AndroidManifest(null, resourceFile("res"), resourceFile("assets"), "org.robolectric"); assertThat(appManifest.getRClass()).isEqualTo(org.robolectric.R.class); assertThat(appManifest.getPackageName()).isEqualTo("org.robolectric"); }
@Test public void shouldShowExpectedSettingsDialog_whenBuildingFromActivity() { new AppSettingsDialog.Builder(spyActivity) .setTitle(android.R.string.dialog_alert_title) .setRationale(android.R.string.unknownName) .setPositiveButton(android.R.string.ok) .setNegativeButton(android.R.string.cancel) .setThemeResId(R.style.Theme_AppCompat) .build() .show(); verify(spyActivity, times(1)) .startActivityForResult(intentCaptor.capture(), integerCaptor.capture()); assertThat(integerCaptor.getValue()).isEqualTo(DEFAULT_SETTINGS_REQ_CODE); assertThat(Objects.requireNonNull(intentCaptor.getValue().getComponent()).getClassName()) .isEqualTo(AppSettingsDialogHolderActivity.class.getName()); Intent startedIntent = shadowApp.getNextStartedActivity(); ShadowIntent shadowIntent = shadowOf(startedIntent); assertThat(shadowIntent.getIntentClass()).isEqualTo(AppSettingsDialogHolderActivity.class); }
@Test public void shouldShowExpectedSettingsDialog_whenBuildingFromSupportFragment() { new AppSettingsDialog.Builder(spyFragment) .setTitle(android.R.string.dialog_alert_title) .setRationale(android.R.string.unknownName) .setPositiveButton(android.R.string.ok) .setNegativeButton(android.R.string.cancel) .setThemeResId(R.style.Theme_AppCompat) .build() .show(); verify(spyFragment, times(1)) .startActivityForResult(intentCaptor.capture(), integerCaptor.capture()); assertThat(integerCaptor.getValue()).isEqualTo(DEFAULT_SETTINGS_REQ_CODE); assertThat(Objects.requireNonNull(intentCaptor.getValue().getComponent()).getClassName()) .isEqualTo(AppSettingsDialogHolderActivity.class.getName()); Intent startedIntent = shadowApp.getNextStartedActivity(); ShadowIntent shadowIntent = shadowOf(startedIntent); assertThat(shadowIntent.getIntentClass()).isEqualTo(AppSettingsDialogHolderActivity.class); }
@Test public void whenMissingManifestFile_getRClass_shouldComeFromPackageName() throws Exception { AndroidManifest appManifest = new AndroidManifest(resourceFile("none.xml"), resourceFile("res"), resourceFile("assets"), "org.robolectric"); assertThat(appManifest.getRClass()).isEqualTo(org.robolectric.R.class); assertThat(appManifest.getPackageName()).isEqualTo("org.robolectric"); }
private static void assertConfig( Config config, int[] sdk, String manifest, Class<? extends Application> application, String packageName, String qualifiers, String resourceDir, String assetsDir, Class<?>[] shadows, String[] instrumentedPackages, String[] libraries) { assertThat(config.sdk()).isEqualTo(sdk); assertThat(config.manifest()).isEqualTo(manifest); assertThat(config.application()).isEqualTo(application); assertThat(config.packageName()).isEqualTo(packageName); assertThat(config.qualifiers()).isEqualTo(qualifiers); assertThat(config.resourceDir()).isEqualTo(resourceDir); assertThat(config.assetDir()).isEqualTo(assetsDir); assertThat(config.shadows()).asList().containsAllIn(shadows).inOrder(); assertThat(config.instrumentedPackages()).asList().containsAllIn(instrumentedPackages); assertThat(config.libraries()).asList().containsAllIn(libraries); }