@Test(expected = IllegalArgumentException.class) public void setRootSpanSamplingStrategy_should_explode_if_passed_null() { // expect Tracer.getInstance().setRootSpanSamplingStrategy(null); }
@Test public void isNextRootSpanSampleable_should_use_strategy() { // given: known sampling strategy that is set on the Tracer RootSpanSamplingStrategy mockStrategy = mock(RootSpanSamplingStrategy.class); Tracer.getInstance().setRootSpanSamplingStrategy(mockStrategy); // when: isNextRootSpanSampleable() is called Tracer.getInstance().isNextRootSpanSampleable(); // then: the strategy's isNextRootSpanSampleable() method should have been called verify(mockStrategy).isNextRootSpanSampleable(); }
@Test public void setRootSpanSamplingStrategy_should_set_the_strategy() { // given: known unique sampling strategy RootSpanSamplingStrategy strategy = new RootSpanSamplingStrategy() { @Override public boolean isNextRootSpanSampleable() { return false; } }; // when: setRootSpanSamplingStrategy() is called Tracer.getInstance().setRootSpanSamplingStrategy(strategy); // then: that exact strategy instance is used assertThat(Whitebox.getInternalState(Tracer.getInstance(), "rootSpanSamplingStrategy")).isSameAs(strategy); }
private void resetTracer() { Tracer.getInstance().completeRequestSpan(); Tracer.getInstance().setRootSpanSamplingStrategy(new SampleAllTheThingsStrategy()); for (SpanLifecycleListener listener : new ArrayList<>(Tracer.getInstance().getSpanLifecycleListeners())) { Tracer.getInstance().removeSpanLifecycleListener(listener); } Tracer.getInstance().setSpanLoggingRepresentation(Tracer.SpanLoggingRepresentation.JSON); }