1   /*******************************************************************************
2    *   Gisgraphy Project 
3    * 
4    *   This library is free software; you can redistribute it and/or
5    *   modify it under the terms of the GNU Lesser General Public
6    *   License as published by the Free Software Foundation; either
7    *   version 2.1 of the License, or (at your option) any later version.
8    * 
9    *   This library is distributed in the hope that it will be useful,
10   *   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12   *   Lesser General Public License for more details.
13   * 
14   *   You should have received a copy of the GNU Lesser General Public
15   *   License along with this library; if not, write to the Free Software
16   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
17   * 
18   *  Copyright 2008  Gisgraphy project 
19   *  David Masclet <davidmasclet@gisgraphy.com>
20   *  
21   *  
22   *******************************************************************************/
23  package com.gisgraphy.domain.repository;
24  
25  import javax.annotation.Resource;
26  
27  import org.junit.Test;
28  
29  import com.gisgraphy.service.IStatsUsageService;
30  import com.gisgraphy.stats.StatsUsage;
31  import com.gisgraphy.stats.StatsUsageType;
32  
33  public class StatsUsageDaoTest extends AbstractTransactionalTestCase {
34  
35      @Resource
36      IStatsUsageService statsUsageService;
37  
38      @Resource
39      private IStatsUsageDao statUsageDao;
40  
41      @Test
42      public void testGetByUsageType() {
43  
44  	if (statUsageDao.getAll().size() == StatsUsageType.values().length) {
45  	    StatsUsage retrieved = statUsageDao
46  		    .getByUsageType(StatsUsageType.FULLTEXT);
47  	    assertNotNull(retrieved);
48  	    assertEquals(StatsUsageType.FULLTEXT, retrieved.getStatsUsageType());
49  	} else {
50  	    statsUsageService.resetUsage(StatsUsageType.FULLTEXT);
51  	    statsUsageService.resetUsage(StatsUsageType.GEOLOC);
52  	    StatsUsage statsUsageFulltext = new StatsUsage(
53  		    StatsUsageType.FULLTEXT);
54  	    statsUsageFulltext.increaseUsage();
55  	    statUsageDao.save(statsUsageFulltext);
56  	    statUsageDao.flushAndClear();
57  
58  	    StatsUsage statsUsageGeoloc = new StatsUsage(StatsUsageType.GEOLOC);
59  	    statsUsageGeoloc.increaseUsage();
60  	    statUsageDao.save(statsUsageGeoloc);
61  	    statUsageDao.flushAndClear();
62  	}
63  
64  	StatsUsage retrieved = statUsageDao
65  		.getByUsageType(StatsUsageType.FULLTEXT);
66  	assertNotNull(retrieved);
67  	assertEquals(StatsUsageType.FULLTEXT, retrieved.getStatsUsageType());
68      }
69  
70  }