public final void tag(I input, ScopedSpan span) {
    if (input == null) throw new NullPointerException("input == null");
    if (span == null) throw new NullPointerException("span == null");
    if (span.isNoop()) return;
    tag(span, input, span.context());
  }
@Test void tag_scopedSpan() {
    when(parseValue.apply(input, context)).thenReturn("value");

    tag.tag(input, scopedSpan);

    verify(scopedSpan).isNoop();
    verify(scopedSpan).context();
    verify(parseValue).apply(input, context);
    verifyNoMoreInteractions(parseValue); // doesn't parse twice
    verify(scopedSpan).tag("key", "value");
    verifyNoMoreInteractions(scopedSpan); // doesn't tag twice
  }