@Override public <T extends Spy<T>> Spy<T> verify(Spy<T> spy) throws SniffyAssertionError { int numQueries = 0; int numRows = 0; for (Map.Entry<StatementMetaData, SqlStats> entry : spy.getExecutedStatements(threads, true).entrySet()) { if ((ANY == type && SYSTEM != entry.getKey().query) || type == entry.getKey().query) { SqlStats sqlStats = entry.getValue(); numQueries += sqlStats.queries.intValue(); numRows += sqlStats.rows.intValue(); } } if (numQueries > maxQueries || numQueries < minQueries) { throw new WrongNumberOfQueriesError( threads, type, minQueries, maxQueries, numQueries, spy.getExecutedStatements(threads, true).keySet() ); } if (numRows > maxRows || numRows < minRows) { throw new WrongNumberOfRowsError( threads, type, minRows, maxRows, numRows, spy.getExecutedStatements(threads, true) ); } return spy; }
@Override public <T extends Spy<T>> Spy<T> verify(Spy<T> spy) throws SniffyAssertionError { int numQueries = 0; int numRows = 0; for (Map.Entry<StatementMetaData, SqlStats> entry : spy.getExecutedStatements(threads, true).entrySet()) { if ((ANY == type && SYSTEM != entry.getKey().query) || type == entry.getKey().query) { SqlStats sqlStats = entry.getValue(); numQueries += sqlStats.queries.intValue(); numRows += sqlStats.rows.intValue(); } } if (numQueries > maxQueries || numQueries < minQueries) { throw new WrongNumberOfQueriesError( threads, type, minQueries, maxQueries, numQueries, spy.getExecutedStatements(threads, true).keySet() ); } if (numRows > maxRows || numRows < minRows) { throw new WrongNumberOfRowsError( threads, type, minRows, maxRows, numRows, spy.getExecutedStatements(threads, true) ); } return spy; }
@Test public void testSpyExecutedStatements_StackTraceTracked() throws Exception { Spy<?> spy = Sniffy.spy(); executeStatement(); Collection<StatementMetaData> statements = spy.getExecutedStatements(Threads.ANY, false).keySet(); Iterator<StatementMetaData> statementsIt = statements.iterator(); StatementMetaData statementMetaData = statementsIt.next(); assertNotNull(statementMetaData.stackTrace); assertTrue(statementMetaData.stackTrace.contains("testSpyExecutedStatements_StackTraceTracked")); assertFalse(statementsIt.hasNext()); }