]> source.dussan.org Git - archiva.git/blob
c1da3c42fc67bcc8ba807509e4a1e44694668741
[archiva.git] /
1 package org.apache.maven.archiva.database.constraints;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *  http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase;
23 import org.apache.maven.archiva.database.ArtifactDAO;
24 import org.apache.maven.archiva.model.ArchivaArtifact;
25
26 import java.util.Date;
27 import java.util.Iterator;
28 import java.util.List;
29
30 /**
31  * ArtifactsProcessedConstraintTest 
32  *
33  * @version $Id$
34  */
35 public class ArtifactsProcessedConstraintTest
36     extends AbstractArchivaDatabaseTestCase
37 {
38     public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String whenProcessed )
39         throws Exception
40     {
41         ArchivaArtifact artifact = dao.getArtifactDAO().createArtifact( groupId, artifactId, version, "", "jar", "testrepo" );
42         assertNotNull( "Artifact should not be null.", artifact );
43         Date dateWhenProcessed = null;
44
45         if ( whenProcessed != null )
46         {
47             dateWhenProcessed = toDate( whenProcessed );
48         }
49
50         artifact.getModel().setWhenProcessed( dateWhenProcessed );
51
52         // Satisfy table / column requirements.
53         artifact.getModel().setLastModified( new Date() );
54
55         return artifact;
56     }
57
58     public void assertResults( String type, List results, String expectedArtifacts[] )
59     {
60         assertNotNull( "Results[" + type + "] should not be null.", results );
61         assertEquals( "Results[" + type + "].size", expectedArtifacts.length, results.size() );
62
63         for ( int i = 0; i < expectedArtifacts.length; i++ )
64         {
65             String artifactId = expectedArtifacts[i];
66
67             int found = 0;
68             Iterator it = results.iterator();
69             while ( it.hasNext() )
70             {
71                 ArchivaArtifact artifact = (ArchivaArtifact) it.next();
72                 if ( artifactId.equals( artifact.getArtifactId() ) )
73                 {
74                     found++;
75                 }
76             }
77
78             if ( found <= 0 )
79             {
80                 fail( "Results[" + type + "] - Did not find expected artifact ID [" + artifactId + "]" );
81             }
82
83             if ( found > 1 )
84             {
85                 fail( "Results[" + type + "] - Expected to find 1 copy of artifact ID [" + artifactId
86                     + "], yet found <" + found + "> instead." );
87             }
88         }
89     }
90
91     @Override
92     protected void setUp()
93         throws Exception
94     {
95         super.setUp();
96
97         ArtifactDAO adao = dao.getArtifactDAO();
98         assertNotNull( "Artifact DAO should not be null.", adao );
99
100         adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-common", "1.0-SNAPSHOT", null ) );
101         adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-utils", "1.0-SNAPSHOT",
102                                            "2006/08/22 19:01:00" ) );
103         adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-old", "0.1", "2004/02/15 9:01:00" ) );
104         adao.saveArtifact( createArtifact( "org.apache.maven.archiva", "archiva-database", "1.0-SNAPSHOT", null ) );
105     }
106
107     public void testNotProcessed()
108         throws Exception
109     {
110         List results = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( false ) );
111         assertResults( "not-processed", results, new String[] { "archiva-common", "archiva-database" } );
112     }
113
114     public void testProcessed()
115         throws Exception
116     {
117         List results = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( true ) );
118         assertResults( "processed", results, new String[] { "archiva-utils", "archiva-old" } );
119     }
120
121     public void testSinceRecent()
122         throws Exception
123     {
124         Date since = toDate( "2006/01/01 12:00:00" );
125         List results = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( since ) );
126         assertResults( "processed", results, new String[] { "archiva-utils" } );
127     }
128
129     public void testSinceOld()
130         throws Exception
131     {
132         Date since = toDate( "2001/01/01 12:00:00" );
133         List results = dao.getArtifactDAO().queryArtifacts( new ArtifactsProcessedConstraint( since ) );
134         assertResults( "processed", results, new String[] { "archiva-utils", "archiva-old" } );
135     }
136 }