@Test void ordersChildrenByTimestamp() {
    List<Span> trace = List.of(
      Span.newBuilder().traceId("a").id("1").build(),
      Span.newBuilder().traceId("a").parentId("1").id("a").name("a").timestamp(2L).build(),
      Span.newBuilder().traceId("a").parentId("1").id("b").name("b").timestamp(1L).build(),
      Span.newBuilder().traceId("a").parentId("1").id("c").name("c").build()
    );

    SpanNode root = new SpanNode.Builder(logger).build(trace);

    assertThat(root.children()).extracting(n -> n.span().name())
      .containsExactly("c", "b", "a"); // null first
  }
Same as {@link #constructsTraceTree()}, except with shared span ID
zipkin/src/test/java/zipkin2/internal/SpanNodeTest.java