### Question:
ParentController extends ChildController { @Override @CheckResult public Options resolveCurrentOptions() { if (CollectionUtils.isNullOrEmpty(getChildControllers())) return initialOptions; return getCurrentChild() .resolveCurrentOptions() .copy() .withDefaultOptions(initialOptions); } ParentController(Activity activity, ChildControllersRegistry childRegistry, String id, Presenter presenter, Options initialOptions); @Override void setWaitForRender(Bool waitForRender); @Override void setDefaultOptions(Options defaultOptions); @Override @CheckResult Options resolveCurrentOptions(); @Override @CheckResult Options resolveCurrentOptions(Options defaultOptions); @NonNull @Override T getView(); @NonNull abstract Collection<? extends ViewController> getChildControllers(); @Nullable @Override ViewController findController(final String id); @Override boolean containsComponent(Component component); @CallSuper void applyChildOptions(Options options, Component child); @CallSuper void mergeChildOptions(Options options, ViewController childController, Component child); @Override void destroy(); void setupTopTabsWithViewPager(ViewPager viewPager); void clearTopTabs(); @Override boolean isRendered(); void onChildDestroyed(Component child);  }### Answer:
@Test public void resolveCurrentOptions_withDefaultOptions() { SimpleViewController child1 = new SimpleViewController(activity, childRegistry, "child1", new Options()); children.add(child1); uut.ensureViewIsCreated(); Options defaultOptions = new Options(); Options currentOptions = spy(new Options()); ParentController spy = spy(uut); Mockito.when(spy.resolveCurrentOptions()).thenReturn(currentOptions); spy.resolveCurrentOptions(defaultOptions); verify(currentOptions).withDefaultOptions(defaultOptions); }