### Question:
BottomTabsController extends ParentController implements AHBottomNavigation.OnTabSelectedListener, TabSelector { @NonNull @Override public Collection<ViewController> getChildControllers() { return tabs; } 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 setTabs_allChildViewsAreAttachedToHierarchy() { uut.onViewAppeared(); assertThat(uut.getView().getChildCount()).isEqualTo(6); for (ViewController child : uut.getChildControllers()) { assertThat(child.getView().getParent()).isNotNull(); } }
@Test public void setTabs_firstChildIsVisibleOtherAreGone() { uut.onViewAppeared(); for (int i = 0; i < uut.getChildControllers().size(); i++) { assertThat(uut.getView().getChildAt(i + 1)).isEqualTo(tabs.get(i).getView()); assertThat(uut.getView().getChildAt(i + 1).getVisibility()).isEqualTo(i == 0 ? View.VISIBLE : View.INVISIBLE); } }