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 OlderSnapshotArtifactsByAgeConstraintTest
37 extends AbstractArchivaDatabaseTestCase
38 {
39 private ArtifactDAO artifactDao;
40
41 protected void setUp()
42 throws Exception
43 {
44 super.setUp();
45
46 ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" );
47 artifactDao = dao.getArtifactDAO();
48 }
49
50 public ArchivaArtifact createArtifact( String artifactId, String version, int daysOld )
51 {
52 ArchivaArtifact artifact = artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version,
53 "", "jar", "testable_repo" );
54 Calendar cal = Calendar.getInstance();
55 cal.add( Calendar.DAY_OF_MONTH, ( -1 ) * daysOld );
56 artifact.getModel().setLastModified( cal.getTime() );
57 artifact.getModel().setRepositoryId( "testable_repo" );
58 return artifact;
59 }
60
61 public void testConstraint()
62 throws Exception
63 {
64 ArchivaArtifact artifact;
65
66
67 artifact = createArtifact( "test-one", "1.0", 200 );
68 artifactDao.saveArtifact( artifact );
69
70 artifact = createArtifact( "test-one", "1.1-SNAPSHOT", 110 );
71 artifactDao.saveArtifact( artifact );
72
73 artifact = createArtifact( "test-one", "1.1", 100 );
74 artifactDao.saveArtifact( artifact );
75
76 artifact = createArtifact( "test-one", "1.2-20060923.005752-2", 55 );
77 artifactDao.saveArtifact( artifact );
78
79 artifact = createArtifact( "test-one", "1.2-SNAPSHOT", 52 );
80 artifactDao.saveArtifact( artifact );
81
82 artifact = createArtifact( "test-one", "1.2", 50 );
83 artifactDao.saveArtifact( artifact );
84
85 artifact = createArtifact( "test-two", "1.0-20060828.144210-1", 220 );
86 artifactDao.saveArtifact( artifact );
87
88 artifact = createArtifact( "test-two", "1.0-SNAPSHOT", 210 );
89 artifactDao.saveArtifact( artifact );
90
91 artifact = createArtifact( "test-two", "1.0", 200 );
92 artifactDao.saveArtifact( artifact );
93
94 artifact = createArtifact( "test-two", "2.0", 150 );
95 artifactDao.saveArtifact( artifact );
96
97 artifact = createArtifact( "test-two", "2.1", 100 );
98 artifactDao.saveArtifact( artifact );
99
100 artifact = createArtifact( "test-two", "3.0", 5 );
101 artifactDao.saveArtifact( artifact );
102
103 assertConstraint( 5, new OlderSnapshotArtifactsByAgeConstraint( 7 ) );
104 assertConstraint( 3, new OlderSnapshotArtifactsByAgeConstraint( 90 ) );
105 assertConstraint( 3, new OlderSnapshotArtifactsByAgeConstraint( 100 ) );
106 assertConstraint( 2, new OlderSnapshotArtifactsByAgeConstraint( 150 ) );
107 assertConstraint( 0, new OlderSnapshotArtifactsByAgeConstraint( 500 ) );
108 }
109
110 private void assertConstraint( int expectedHits, Constraint constraint )
111 throws Exception
112 {
113 List<ArchivaArtifact> results = artifactDao.queryArtifacts( constraint );
114 assertNotNull( "Older Snapshot Artifacts By Age: Not Null", results );
115 assertEquals( "Older Snapshot Artifacts By Age: Results.size", expectedHits, results.size() );
116 }
117 }