### Question:
FabricUIManager implements UIManager, JSHandler { @Nullable @DoNotStrip public ReactShadowNode cloneNodeWithNewProps( ReactShadowNode node, @Nullable ReadableNativeMap newProps) { if (DEBUG) { FLog.d(TAG, "cloneNodeWithNewProps \n\tnode: " + node + "\n\tprops: " + newProps); } SystraceMessage.beginSection( Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "FabricUIManager.cloneNodeWithNewProps") .flush(); try { ReactShadowNode clone = node.mutableCopyWithNewProps(node.getInstanceHandle(), newProps == null ? null : new ReactStylesDiffMap(newProps)); assertReactShadowNodeCopy(node, clone); return clone; } catch (Throwable t) { handleException(node, t); return null; } finally{ Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE); } } FabricUIManager(
      ReactApplicationContext reactContext,
      ViewManagerRegistry viewManagerRegistry,
      JavaScriptContextHolder jsContext,
      EventDispatcher eventDispatcher); void setBinding(FabricBinding binding); @Nullable @DoNotStrip ReactShadowNode createNode(
      int reactTag, String viewName, int rootTag, ReadableNativeMap props, long eventTarget); @Nullable @DoNotStrip ReactShadowNode cloneNode(ReactShadowNode node); @Nullable @DoNotStrip ReactShadowNode cloneNodeWithNewChildren(ReactShadowNode node); @Nullable @DoNotStrip ReactShadowNode cloneNodeWithNewProps(
      ReactShadowNode node, @Nullable ReadableNativeMap newProps); @Nullable @DoNotStrip ReactShadowNode cloneNodeWithNewChildrenAndProps(
      ReactShadowNode node, ReadableNativeMap newProps); @Nullable @DoNotStrip void appendChild(ReactShadowNode parent, ReactShadowNode child); @DoNotStrip List<ReactShadowNode> createChildSet(int rootTag); @DoNotStrip void appendChildToSet(List<ReactShadowNode> childList, ReactShadowNode child); @DoNotStrip synchronized void completeRoot(int rootTag, @Nullable List<ReactShadowNode> childList); void dispatchCommand(int reactTag, int commandId, @Nullable ReadableArray commandArgs); @Override @DoNotStrip int addRootView(
      final T rootView); @Override @DoNotStrip synchronized void updateRootLayoutSpecs(int rootViewTag, int widthMeasureSpec, int heightMeasureSpec); void removeRootView(int rootTag); @Nullable @DoNotStrip long getEventTarget(int reactTag); @DoNotStrip void registerEventHandler(long eventHandlerPointer); @DoNotStrip void releaseEventTarget(long eventTargetPointer); @DoNotStrip void releaseEventHandler(long eventHandlerPointer); @Override @DoNotStrip void invoke(long eventTarget, String name, WritableMap params); @Override void setJSResponder(int reactTag, boolean blockNativeResponder); @Override void clearJSResponder(); @Override void initialize(); @Override void onCatalystInstanceDestroy(); @Override void profileNextBatch(); @Override Map<String, Long> getPerformanceCounters();  }### Answer:
@Test public void testCloneNodeWithNewProps() { ReactShadowNode node = createViewNode(); ReadableNativeMap props = null; ReactShadowNode clonedNode = mFabricUIManager.cloneNodeWithNewProps(node, props); }