@Test public void nullConnectionInstance() { storage.populate(sqlStatementData, null); assertThat((int) storage.storage.size(), is(0)); verifyZeroInteractions(sqlStatementData); }
@Test public void extractorReturnsNull() { Object connectionObject = ""; when(extractor.parse(connectionObject)).thenReturn(null); storage.populate(sqlStatementData, connectionObject); // we have one now as adding empty assertThat(storage.storage.size(), is(1L)); // re-trying should not touch the storage storage.populate(sqlStatementData, connectionObject); assertThat(storage.storage.size(), is(1L)); // in any case no sql touching verifyZeroInteractions(sqlStatementData); }
/** * {@inheritDoc} */ @Override public void secondAfterBody(ICoreService coreService, long methodId, long sensorTypeId, Object object, Object[] parameters, Object result, boolean exception, RegisteredSensorConfig rsc) { // NOCHK:8-params double endTime = timeStack.pop().doubleValue(); double startTime = timeStack.pop().doubleValue(); if (threadLast.get().booleanValue()) { threadLast.set(Boolean.FALSE); double duration = endTime - startTime; String sql = parameters[0].toString(); Timestamp timestamp = new Timestamp(System.currentTimeMillis() - Math.round(duration)); long platformId = platformManager.getPlatformId(); SqlStatementData sqlData = new SqlStatementData(timestamp, platformId, sensorTypeId, methodId); sqlData.setPreparedStatement(false); sqlData.setSql(strConstraint.crop(sql)); sqlData.setDuration(duration); sqlData.calculateMin(duration); sqlData.calculateMax(duration); sqlData.setCount(1L); // populate the connection meta data. connectionMetaDataStorage.populate(sqlData, statementReflectionCache.getConnection(object.getClass(), object)); coreService.addDefaultData(sqlData); } }
connectionMetaDataStorage.populate(sqlData, statementReflectionCache.getConnection(object.getClass(), object));
@Test public void sqlPopulated() { ConnectionMetaData data = new ConnectionMetaData(); data.product = "product"; data.version = "version"; data.url = "url"; when(extractor.parse(anyObject())).thenReturn(data); // note that we can pass this as we mocked the data extraction. Object connectionObject = ""; storage.populate(sqlStatementData, connectionObject); assertThat(storage.storage.size(), is(1L)); assertThat(storage.storage.getIfPresent(connectionObject), is(data)); verify(sqlStatementData, times(1)).setDatabaseProductName(data.product); verify(sqlStatementData, times(1)).setDatabaseProductVersion(data.version); verify(sqlStatementData, times(1)).setDatabaseUrl(data.url); // second try, storage stays same storage.populate(sqlStatementData, connectionObject); assertThat(storage.storage.size(), is(1L)); assertThat(storage.storage.getIfPresent(connectionObject), is(data)); verify(sqlStatementData, times(2)).setDatabaseProductName(data.product); verify(sqlStatementData, times(2)).setDatabaseProductVersion(data.version); verify(sqlStatementData, times(2)).setDatabaseUrl(data.url); } }