### Question:
OtlpGrpcSpanExporter implements SpanExporter { public static Builder newBuilder() { return new Builder(); } private  OtlpGrpcSpanExporter(ManagedChannel channel, long deadlineMs); @Override CompletableResultCode export(Collection<SpanData> spans); @Override CompletableResultCode flush(); static Builder newBuilder(); static OtlpGrpcSpanExporter getDefault(); @Override CompletableResultCode shutdown(); static final String DEFAULT_ENDPOINT; static final long DEFAULT_DEADLINE_MS; }### Answer:
@Test void configTest() { Map<String, String> options = new HashMap<>(); options.put("otel.exporter.otlp.span.timeout", "12"); options.put("otel.exporter.otlp.span.endpoint", "http: options.put("otel.exporter.otlp.span.insecure", "true"); options.put( "otel.exporter.otlp.span.headers", "key=value;key2=value2=;key3=val=ue3; key4 = value4 ;key5= "); OtlpGrpcSpanExporter.Builder config = OtlpGrpcSpanExporter.newBuilder(); OtlpGrpcSpanExporter.Builder spy = Mockito.spy(config); spy.fromConfigMap(options, ConfigBuilderTest.getNaming()); Mockito.verify(spy).setDeadlineMs(12); Mockito.verify(spy).setEndpoint("http: Mockito.verify(spy).setUseTls(false); Mockito.verify(spy).addHeader("key", "value"); Mockito.verify(spy).addHeader("key2", "value2="); Mockito.verify(spy).addHeader("key3", "val=ue3"); Mockito.verify(spy).addHeader("key4", "value4"); Mockito.verify(spy, Mockito.never()).addHeader("key5", ""); }