package rocks.inspectit.agent.java.tracing.core;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.testng.annotations.Test;
import rocks.inspectit.agent.java.core.ICoreService;
import rocks.inspectit.agent.java.core.IPlatformManager;
import rocks.inspectit.agent.java.sdk.opentracing.internal.impl.SpanContextImpl;
import rocks.inspectit.agent.java.sdk.opentracing.internal.impl.SpanImpl;
import rocks.inspectit.shared.all.testbase.TestBase;
import rocks.inspectit.shared.all.tracing.data.AbstractSpan;
/**
* @author Ivan Senic
*
*/
@SuppressWarnings("PMD")
public class CoreServiceReporterTest extends TestBase {
@InjectMocks
CoreServiceReporter reporter;
@Mock
IPlatformManager platformManager;
@Mock
ICoreService coreService;
public static class Report extends CoreServiceReporterTest {
@Test
public void happyPath() throws Exception {
long spanId = 13L;
long platformId = 17L;
SpanImpl span = mock(SpanImpl.class);
SpanContextImpl context = mock(SpanContextImpl.class);
when(context.getId()).thenReturn(spanId);
when(span.context()).thenReturn(context);
when(platformManager.getPlatformId()).thenReturn(platformId);
reporter.report(span);
ArgumentCaptor<AbstractSpan> captor = ArgumentCaptor.forClass(AbstractSpan.class);
verify(coreService).addMethodSensorData(eq(0L), eq(0L), eq(String.valueOf(spanId)), captor.capture());
assertThat(captor.getValue().getPlatformIdent(), is(platformId));
assertThat(captor.getValue().getSensorTypeIdent(), is(0L));
assertThat(captor.getValue().getMethodIdent(), is(0L));
}
}
}