### Question:
WeaverFactory { @SuppressWarnings("unchecked") public WeaverObserveOnComponent buildWeaverObserveOnComponent(@NonNull ComponentType componentType, @NonNull ProceedingJoinPoint joinPoint) { WeaverComponent parentWeaverComponent = currentWeaverComponent.get(); switch (componentType) { case FLOWABLE: return new WeaverObserveOnComponentFlowable(joinPoint, parentWeaverComponent); case OBSERVABLE: return new WeaverObserveOnComponentObservable(joinPoint, parentWeaverComponent); case SINGLE: return new WeaverObserveOnComponentSingle(joinPoint, parentWeaverComponent); case MAYBE: return new WeaverObserveOnComponentMaybe(joinPoint, parentWeaverComponent); case COMPLETABLE: return new WeaverObserveOnComponentCompletable(joinPoint, parentWeaverComponent); default: return null; } } WeaverFactory(); WeaverComponent buildWeaverComponent(@NonNull ComponentType componentType, @NonNull RxLogger.Scope scope, @NonNull ProceedingJoinPoint joinPoint, @NonNull MessageManager messageManager); @SuppressWarnings("unchecked") WeaverSubscribeOnComponent buildWeaverSubscribeOnComponent(@NonNull ComponentType componentType, @NonNull ProceedingJoinPoint joinPoint); @SuppressWarnings("unchecked") WeaverObserveOnComponent buildWeaverObserveOnComponent(@NonNull ComponentType componentType, @NonNull ProceedingJoinPoint joinPoint);  }### Answer:
@Test public void buildWeaverObserveOnComponent() { assertTrue(weaverFactory.buildWeaverObserveOnComponent(ComponentType.OBSERVABLE, null) instanceof WeaverObserveOnComponentObservable); assertTrue(weaverFactory.buildWeaverObserveOnComponent(ComponentType.FLOWABLE, null) instanceof WeaverObserveOnComponentFlowable); assertTrue(weaverFactory.buildWeaverObserveOnComponent(ComponentType.SINGLE, null) instanceof WeaverObserveOnComponentSingle); assertTrue(weaverFactory.buildWeaverObserveOnComponent(ComponentType.MAYBE, null) instanceof WeaverObserveOnComponentMaybe); assertTrue(weaverFactory.buildWeaverObserveOnComponent(ComponentType.COMPLETABLE, null) instanceof WeaverObserveOnComponentCompletable); }