@Test void testInitEmpty() { final Id id = Id.new64BitId(); assertThat(id.toString()).isEqualTo("0000000000000000"); assertThat(id.isEmpty()).isTrue(); id.fromHexString("0000000000000000", 0); assertThat(id.toString()).isEqualTo("0000000000000000"); assertThat(id.isEmpty()).isTrue(); id.fromLongs(0); assertThat(id.toString()).isEqualTo("0000000000000000"); assertThat(id.isEmpty()).isTrue(); }
@Test void testReInit() { final Id id = Id.new64BitId(); id.fromHexString("0000000000000001", 0); assertThat(id.toString()).isEqualTo("0000000000000001"); assertThat(id.isEmpty()).isFalse(); id.fromHexString("0000000000000002", 0); assertThat(id.toString()).isEqualTo("0000000000000002"); assertThat(id.isEmpty()).isFalse(); }
@Test void testReset() { final Id id = Id.new64BitId(); id.fromHexString("0000000000000001", 0); assertThat(id.toString()).isEqualTo("0000000000000001"); assertThat(id.isEmpty()).isFalse(); id.resetState(); assertThat(id.toString()).isEqualTo("0000000000000000"); assertThat(id.isEmpty()).isTrue(); }
@Test void outgoingHeader() { final TraceContext traceContext = TraceContext.with64BitId(mock(ElasticApmTracer.class)); final String header = "00-0af7651916cd43dd8448eb211c80319c-b9c7c989f97918e1-03"; assertThat(traceContext.asChildOf(header)).isTrue(); assertThat(traceContext.getOutgoingTraceParentHeader().toString()) .isEqualTo("00-0af7651916cd43dd8448eb211c80319c-" + traceContext.getId().toString() + "-03"); }
@Test void testTransactionWithParentReference() { final String traceContextHeader = "00-0af7651916cd43dd8448eb211c80319c-b9c7c989f97918e1-01"; final Transaction transaction = tracerImpl.startTransaction(TraceContext.fromTraceparentHeader(), traceContextHeader, ConstantSampler.of(false), 0); // the traced flag in the header overrides the sampler assertThat(transaction.isSampled()).isTrue(); assertThat(transaction.getTraceContext().getParentId().toString()).isEqualTo("b9c7c989f97918e1"); assertThat(transaction.getTraceContext().getTraceId().toString()).isEqualTo("0af7651916cd43dd8448eb211c80319c"); transaction.end(1); assertThat(reporter.getTransactions()).hasSize(1); assertThat(reporter.getSpans()).hasSize(0); }
@Test void testPropagateTransactionIdForUnsampledSpan() { final TraceContext rootContext = TraceContext.with64BitId(mock(ElasticApmTracer.class)); rootContext.asRootSpan(ConstantSampler.of(false)); final TraceContext childContext = TraceContext.with64BitId(mock(ElasticApmTracer.class)); childContext.asChildOf(rootContext); assertThat(childContext.getOutgoingTraceParentHeader().toString()).doesNotContain(childContext.getId().toString()); assertThat(childContext.getOutgoingTraceParentHeader().toString()).contains(rootContext.getId().toString()); }