/** * Method declaration * * @param conf */ public static void makeStatAllCumul(StatisticsConfig conf) { Connection con = getConnection(); try { if (conf != null && con != null && conf.isValidConfigFile()) { for (StatType currentType : conf.getAllTypes()) { try { purgeTablesCumul(con, currentType, conf); } catch (SQLException e) { SilverTrace.error( "silverstatistics", "SilverStatisticsManagerDAO.makeStatAllCumul", "silverstatistics.MSG_PURGE_BD", e); } try { makeStatCumul(con, currentType, conf); } catch (SQLException e) { SilverTrace.error( "silverstatistics", "SilverStatisticsManagerDAO.makeStatAllCumul", "silverstatistics.MSG_CUMUL_BD", e); } finally { try { deleteTablesOfTheDay(con, currentType, conf); } catch (SQLException e) { SilverTrace.error( "silverstatistics", "SilverStatisticsManagerDAO.makeStatAllCumul", "silverstatistics.MSG_PURGE_BD", e); } } } } else { if (con == null) { SilverTrace.error( "silverstatistics", "SilverStatisticsManagerDAO.makeStatAllCumul", "silverstatistics.MSG_CONNECTION_BD"); } if (conf == null) { SilverTrace.error( "silverstatistics", "SilverStatisticsManagerDAO.makeStatAllCumul", "silverstatistics.MSG_NO_CONFIG_FILE"); } else if (!conf.isValidConfigFile()) { SilverTrace.error( "silverstatistics", "SilverStatisticsManagerDAO.makeStatAllCumul", "silverstatistics.MSG_CONFIG_FILE"); } } } finally { DBUtil.close(con); } }
@Test public void testMakeStatCumulWithoutExistingData() throws Exception { MockConnection connexion = factory.getMockConnection(); StatementResultSetHandler statementHandler = connexion.getStatementResultSetHandler(); statementHandler.setExactMatch(true); MockResultSet result = statementHandler.createResultSet(); result.addColumn("dateStat", new Object[] {"2011-04-17"}); result.addColumn("fileDir", new Object[] {"/var/data/silverpeas/kmelia36"}); result.addColumn("sizeDir", new Object[] {543L}); statementHandler.prepareResultSet("SELECT * FROM SB_Stat_SizeDir", result); MockResultSet cumulResult = statementHandler.createResultSet(); statementHandler.prepareResultSet( "SELECT dateStat,fileDir,sizeDir FROM SB_Stat_SizeDirCumul " + "WHERE dateStat='2011-04-01' AND fileDir='/var/data/silverpeas/kmelia36'", cumulResult); SilverStatisticsManagerDAO.makeStatCumul(connexion, typeofStat, config); module.verifyAllStatementsClosed(); List<?> statements = module.getExecutedSQLStatements(); assertNotNull(statements); assertThat(statements.size(), is(3)); List<?> preparedStatements = module.getPreparedStatements(); assertNotNull(preparedStatements); assertThat(preparedStatements, hasSize(2)); MockPreparedStatement pstmt = module.getPreparedStatement(0); assertThat( pstmt.getSQL(), is( "UPDATE SB_Stat_SizeDirCumul SET sizeDir=? WHERE " + "dateStat='2011-04-01' AND fileDir='/var/data/silverpeas/kmelia36'")); Map parameters = pstmt.getParameterMap(); assertThat(parameters.size(), is(0)); pstmt = module.getPreparedStatement(1); assertThat( pstmt.getSQL(), is("INSERT INTO SB_Stat_SizeDirCumul(dateStat,fileDir,sizeDir) " + "VALUES(?,?,?)")); parameters = pstmt.getParameterMap(); assertThat(parameters.size(), is(3)); assertThat((String) parameters.get(1), is("2011-04-01")); assertThat((String) parameters.get(2), is("/var/data/silverpeas/kmelia36")); assertThat((Long) parameters.get(3), is(543L)); }