1 package org.apache.maven.archiva.database.constraints;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase;
23 import org.apache.maven.archiva.database.ArchivaDAO;
24 import org.apache.maven.archiva.database.ArtifactDAO;
25 import org.apache.maven.archiva.database.Constraint;
26 import org.apache.maven.archiva.model.ArchivaArtifact;
27
28 import java.util.Calendar;
29 import java.util.List;
30
31
32
33
34
35
36 public class RecentArtifactsByAgeConstraintTest
37 extends AbstractArchivaDatabaseTestCase
38 {
39 private ArtifactDAO artifactDao;
40
41 @Override
42 protected void setUp()
43 throws Exception
44 {
45 super.setUp();
46
47 ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" );
48 artifactDao = dao.getArtifactDAO();
49 }
50
51 public ArchivaArtifact createArtifact( String artifactId, String version, int daysOld )
52 {
53 ArchivaArtifact artifact = artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version,
54 "", "jar", "testable_repo" );
55 Calendar cal = Calendar.getInstance();
56 cal.add( Calendar.DAY_OF_MONTH, ( -1 ) * daysOld );
57 artifact.getModel().setLastModified( cal.getTime() );
58 artifact.getModel().setRepositoryId( "testable_repo" );
59 return artifact;
60 }
61
62 public void testConstraint()
63 throws Exception
64 {
65 ArchivaArtifact artifact;
66
67
68 artifact = createArtifact( "test-one", "1.0", 200 );
69 artifactDao.saveArtifact( artifact );
70
71 artifact = createArtifact( "test-one", "1.1", 100 );
72 artifactDao.saveArtifact( artifact );
73
74 artifact = createArtifact( "test-one", "1.2", 50 );
75 artifactDao.saveArtifact( artifact );
76
77 artifact = createArtifact( "test-two", "1.0", 200 );
78 artifactDao.saveArtifact( artifact );
79
80 artifact = createArtifact( "test-two", "2.0", 150 );
81 artifactDao.saveArtifact( artifact );
82
83 artifact = createArtifact( "test-two", "2.1", 100 );
84 artifactDao.saveArtifact( artifact );
85
86 artifact = createArtifact( "test-two", "3.0", 5 );
87 artifactDao.saveArtifact( artifact );
88
89 assertConstraint( 0, new RecentArtifactsByAgeConstraint( 2 ) );
90 assertConstraint( 1, new RecentArtifactsByAgeConstraint( 7 ) );
91 assertConstraint( 2, new RecentArtifactsByAgeConstraint( 90 ) );
92 assertConstraint( 4, new RecentArtifactsByAgeConstraint( 100 ) );
93 assertConstraint( 5, new RecentArtifactsByAgeConstraint( 150 ) );
94 assertConstraint( 7, new RecentArtifactsByAgeConstraint( 9000 ) );
95 }
96
97 private void assertConstraint( int expectedHits, Constraint constraint )
98 throws Exception
99 {
100 List<ArchivaArtifact> results = artifactDao.queryArtifacts( constraint );
101 assertNotNull( "Recent Artifacts By Age: Not Null", results );
102 assertEquals( "Recent Artifacts By Age: Results.size", expectedHits, results.size() );
103 }
104 }