### Question:
WeaverObserveOnComponentFlowable extends WeaverObserveOnComponentAbstract<Flowable> { @Override public Flowable build() throws Throwable { return buildComponentInternal(); } WeaverObserveOnComponentFlowable(ProceedingJoinPoint joinPoint, WeaverComponent<Flowable> parentWeaverComponent); @Override Flowable build();  }### Answer:
@Test public void build() throws Throwable { when(proceedingJoinPoint.proceed()).thenReturn(Flowable.just(1)); when(parentWeaverComponent.getComponentInfo()).thenReturn(componentInfo); when(proceedingJoinPoint.getArgs()).thenReturn(new Object[]{Schedulers.io()}); WeaverObserveOnComponentFlowable weaverObserveOnComponentFlowable = new WeaverObserveOnComponentFlowable(proceedingJoinPoint, parentWeaverComponent); Flowable flowable = weaverObserveOnComponentFlowable.build(); flowable.subscribe(observer); observer.dispose(); observer.assertComplete(); verify(componentInfo).setObserveOnScheduler(anyString()); }
@Test public void buildWithoutParent() throws Throwable { when(proceedingJoinPoint.proceed()).thenReturn(Flowable.just(1)); WeaverObserveOnComponentFlowable weaverObserveOnComponentFlowable = new WeaverObserveOnComponentFlowable(proceedingJoinPoint, null); Flowable flowable = weaverObserveOnComponentFlowable.build(); flowable.subscribe(observer); observer.dispose(); observer.assertComplete(); verify(componentInfo, times(0)).setObserveOnScheduler(anyString()); }