1 package org.apache.maven.archiva.database.jdo;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.List;
23
24 import javax.jdo.JDOHelper;
25
26 import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase;
27 import org.apache.maven.archiva.database.RepositoryContentStatisticsDAO;
28 import org.apache.maven.archiva.database.constraints.RepositoryContentStatisticsByRepositoryConstraint;
29 import org.apache.maven.archiva.model.RepositoryContentStatistics;
30
31
32
33
34
35
36 public class JdoRepositoryContentStatisticsDAOTest
37 extends AbstractArchivaDatabaseTestCase
38 {
39 public void testCRUD()
40 throws Exception
41 {
42 RepositoryContentStatisticsDAO repoContentStatisticsDAO = dao.getRepositoryContentStatisticsDAO();
43
44
45 RepositoryContentStatistics savedStats =
46 repoContentStatisticsDAO.saveRepositoryContentStatistics( createStats( "internal", "2007/10/21 8:00:00",
47 20000, 12000, 400 ) );
48 assertNotNull( savedStats );
49
50 String savedKeyId = JDOHelper.getObjectId( savedStats ).toString();
51 assertEquals( "1[OID]org.apache.maven.archiva.model.RepositoryContentStatistics", savedKeyId );
52
53
54 List<RepositoryContentStatistics> results =
55 repoContentStatisticsDAO.queryRepositoryContentStatistics( new RepositoryContentStatisticsByRepositoryConstraint(
56 "internal" ) );
57 assertNotNull( results );
58 assertEquals( 1, results.size() );
59
60 RepositoryContentStatistics stats = (RepositoryContentStatistics) results.get( 0 );
61 assertEquals( "internal", stats.getRepositoryId() );
62
63
64 repoContentStatisticsDAO.deleteRepositoryContentStatistics( stats );
65
66 assertEquals( 0, repoContentStatisticsDAO.queryRepositoryContentStatistics(
67 new RepositoryContentStatisticsByRepositoryConstraint( "internal" ) ).size() );
68 }
69
70 private RepositoryContentStatistics createStats( String repoId, String timestamp, long duration, long totalfiles,
71 long newfiles )
72 throws Exception
73 {
74 RepositoryContentStatistics stats = new RepositoryContentStatistics();
75 stats.setRepositoryId( repoId );
76 stats.setDuration( duration );
77 stats.setNewFileCount( newfiles );
78 stats.setTotalFileCount( totalfiles );
79 stats.setWhenGathered( toDate( timestamp ) );
80
81 return stats;
82 }
83 }