### Question:
BottomTabsController extends ParentController implements AHBottomNavigation.OnTabSelectedListener, TabSelector { public int getSelectedIndex() { return bottomTabs.getCurrentItem(); } BottomTabsController(Activity activity, List<ViewController> tabs, ChildControllersRegistry childRegistry, EventEmitter eventEmitter, ImageLoader imageLoader, String id, Options initialOptions, Presenter presenter, BottomTabsAttacher tabsAttacher, BottomTabsPresenter bottomTabsPresenter, BottomTabPresenter bottomTabPresenter); @Override void setDefaultOptions(Options defaultOptions); @Override void applyOptions(Options options); @Override void mergeOptions(Options options); @Override void applyChildOptions(Options options, Component child); @Override void mergeChildOptions(Options options, ViewController childController, Component child); @Override boolean handleBack(CommandListener listener); @Override void sendOnNavigationButtonPressed(String buttonId); @Override boolean onTabSelected(int index, boolean wasSelected); int getSelectedIndex(); @NonNull @Override Collection<ViewController> getChildControllers(); @Override void destroy(); @Override void selectTab(final int newIndex); @RestrictTo(RestrictTo.Scope.TESTS) BottomTabs getBottomTabs();  }### Answer:
@Test public void deepChildOptionsAreApplied() { child6.options.topBar.drawBehind = new Bool(false); disablePushAnimation(child6); child4.push(child6, new CommandListenerAdapter()); assertThat(child4.size()).isOne(); assertThat(uut.getSelectedIndex()).isZero(); verify(child6, times(0)).onViewAppeared(); assertThat(child4.getTopBar().getHeight()) .isNotZero() .isEqualTo(((ViewGroup.MarginLayoutParams) child6.getView().getLayoutParams()).topMargin); }