### Question:
SpanShim extends BaseShimObject implements Span { @Override public SpanContext context() { SpanContextShim contextShim = spanContextTable().get(this); if (contextShim == null) { contextShim = spanContextTable().create(this); } return contextShim; } SpanShim(TelemetryInfo telemetryInfo, io.opentelemetry.trace.Span span); @Override SpanContext context(); @Override Span setTag(String key, String value); @Override Span setTag(String key, boolean value); @Override Span setTag(String key, Number value); @Override Span setTag(Tag<T> tag, T value); @Override Span log(Map<String, ?> fields); @Override Span log(long timestampMicroseconds, Map<String, ?> fields); @Override Span log(String event); @Override Span log(long timestampMicroseconds, String event); @Override Span setBaggageItem(String key, String value); @Nullable @Override String getBaggageItem(String key); @Override Span setOperationName(String operationName); @Override void finish(); @Override void finish(long finishMicros);  }### Answer:
@Test void context_simple() { SpanShim spanShim = new SpanShim(telemetryInfo, span); SpanContextShim contextShim = (SpanContextShim) spanShim.context(); assertNotNull(contextShim); assertEquals(contextShim.getSpanContext(), span.getContext()); assertEquals(contextShim.toTraceId(), span.getContext().getTraceIdAsHexString().toString()); assertEquals(contextShim.toSpanId(), span.getContext().getSpanIdAsHexString().toString()); assertFalse(contextShim.baggageItems().iterator().hasNext()); }