### Question:
ComponentViewController extends ChildController<ComponentLayout> { @Override public void mergeOptions(Options options) { if (options == Options.EMPTY) return; presenter.mergeOptions(getView(), options); performOnParentController(parentController -> parentController.mergeChildOptions(options, this, getView())); super.mergeOptions(options); } ComponentViewController(final Activity activity,
                                   final ChildControllersRegistry childRegistry,
                                   final String id,
                                   final String componentName,
                                   final ReactViewCreator viewCreator,
                                   final Options initialOptions,
                                   final Presenter presenter,
                                   final ComponentPresenter componentPresenter); @Override void setDefaultOptions(Options defaultOptions); @Override void onViewAppeared(); @Override void onViewDisappear(); @Override void sendOnNavigationButtonPressed(String buttonId); @Override void applyOptions(Options options); @Override boolean isViewShown(); @Override void mergeOptions(Options options); @Override void destroy();  }### Answer:
@Test public void mergeOptions_emptyOptionsAreIgnored() { ComponentViewController spy = spy(uut); spy.mergeOptions(Options.EMPTY); verify(spy, times(0)).performOnParentController(any()); }
@Test public void mergeOptions_delegatesToPresenter() { Options options = new Options(); uut.mergeOptions(options); verify(presenter).mergeOptions(uut.getView(), options); }