use of com.newrelic.agent.instrumentation.sql.NoOpTrackingSqlTracer in project newrelic-java-agent by newrelic.
the class SlowQueryAggregatorImplTest method createTransactionData.
private TransactionData createTransactionData(String appName, String transactionName, long durationInMillis) {
AgentConfig agentConfig = ServiceFactory.getConfigService().getDefaultAgentConfig();
MockDispatcher dispatcher = new MockDispatcher();
dispatcher.setWebTransaction(true);
MockDispatcherTracer rootTracer = new MockDispatcherTracer();
rootTracer.setDurationInMilliseconds(durationInMillis);
rootTracer.setStartTime(System.nanoTime());
rootTracer.setEndTime(rootTracer.getStartTime() + TimeUnit.NANOSECONDS.convert(durationInMillis, TimeUnit.MILLISECONDS));
TransactionTracerConfig ttconf = Mockito.mock(TransactionTracerConfig.class);
when(ttconf.isEnabled()).thenReturn(true);
when(ttconf.getInsertSqlMaxLength()).thenReturn(10 * 1000);
Transaction tx = mock(Transaction.class);
TransactionActivity txa = mock(TransactionActivity.class);
when(txa.getTransaction()).thenReturn(tx);
when(tx.getTransactionActivity()).thenReturn(txa);
when(tx.getTransactionTracerConfig()).thenReturn(ttconf);
List<SlowQueryInfo> tracers = new ArrayList<>(1);
String sql = "select * from TABLE" + Integer.toString(count.incrementAndGet()) + " where Time = 'nigh'";
String obfuscatedSql = sqlObfuscator.obfuscateSql(sql);
SqlTracer sqlTracer = new NoOpTrackingSqlTracer(tx, sql);
SlowQueryInfo slowQueryInfo = new SlowQueryInfo(null, sqlTracer, sql, obfuscatedSql, agentConfig.getSqlTraceConfig());
tracers.add(slowQueryInfo);
SlowQueryListener slowQueryListener = Mockito.mock(SlowQueryListener.class);
org.mockito.Mockito.when(slowQueryListener.getSlowQueries()).thenReturn(tracers);
return new TransactionDataTestBuilder(appName, agentConfig, rootTracer).setTx(tx).setRequestUri(transactionName).setFrontendMetricName(transactionName).setSlowQueryListener(slowQueryListener).build();
}
Aggregations