### Question:
TracerSdkProvider implements TracerProvider, TracerSdkManagement { @Override public void shutdown() { if (sharedState.isStopped()) { logger.log(Level.WARNING, "Calling shutdown() multiple times."); return; } sharedState.stop(); } private  TracerSdkProvider(Clock clock, IdsGenerator idsGenerator, Resource resource); static Builder builder(); @Override Tracer get(String instrumentationName); @Override Tracer get(String instrumentationName, String instrumentationVersion); @Override TraceConfig getActiveTraceConfig(); @Override void updateActiveTraceConfig(TraceConfig traceConfig); @Override void addSpanProcessor(SpanProcessor spanProcessor); @Override void shutdown(); @Override CompletableResultCode forceFlush();  }### Answer:
@Test void shutdown() { tracerFactory.shutdown(); Mockito.verify(spanProcessor, Mockito.times(1)).shutdown(); }
@Test void shutdownTwice_OnlyFlushSpanProcessorOnce() { tracerFactory.shutdown(); Mockito.verify(spanProcessor, Mockito.times(1)).shutdown(); tracerFactory.shutdown(); Mockito.verify(spanProcessor, Mockito.times(1)).shutdown(); }