### Question:
LoggingSpanExporter implements SpanExporter { @Override public CompletableResultCode export(Collection<SpanData> spans) { for (SpanData span : spans) { logger.log(Level.INFO, "span: {0}", span); } return CompletableResultCode.ofSuccess(); }  @Override CompletableResultCode export(Collection<SpanData> spans); @Override CompletableResultCode flush(); @Override CompletableResultCode shutdown();  }### Answer:
@Test void returnCode() { long epochNanos = TimeUnit.MILLISECONDS.toNanos(System.currentTimeMillis()); SpanData spanData = TestSpanData.newBuilder() .setHasEnded(true) .setTraceId(TraceId.fromLongs(1234L, 6789L)) .setSpanId(SpanId.fromLong(9876L)) .setStartEpochNanos(epochNanos) .setEndEpochNanos(epochNanos + 1000) .setStatus(Status.ok()) .setName("testSpan") .setKind(Kind.INTERNAL) .setEvents( Collections.singletonList( Event.create( epochNanos + 500, "somethingHappenedHere", Attributes.of(booleanKey("important"), true)))) .setTotalRecordedEvents(1) .setTotalRecordedLinks(0) .build(); CompletableResultCode resultCode = exporter.export(singletonList(spanData)); assertThat(resultCode.isSuccess()).isTrue(); }