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.Date;
23 import java.util.List;
24
25 import javax.jdo.JDOHelper;
26 import javax.jdo.spi.JDOImplHelper;
27
28 import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase;
29 import org.apache.maven.archiva.database.ArtifactDAO;
30 import org.apache.maven.archiva.model.ArchivaArtifact;
31 import org.apache.maven.archiva.model.ArchivaArtifactModel;
32 import org.apache.maven.archiva.model.jpox.ArchivaArtifactModelKey;
33
34
35
36
37
38
39 public class JdoArtifactDAOTest
40 extends AbstractArchivaDatabaseTestCase
41 {
42 public void testArtifactKey()
43 {
44 Object o = JDOImplHelper.getInstance().newObjectIdInstance( ArchivaArtifactModel.class, "foo:bar:1.0::jar:testrepo" );
45 assertNotNull( "Key should not be null.", o );
46 assertTrue( "Key should be an instance of " + ArchivaArtifactModelKey.class.getName(),
47 ( o instanceof ArchivaArtifactModelKey ) );
48
49 ArchivaArtifactModelKey key = (ArchivaArtifactModelKey) o;
50 assertEquals( "foo", key.groupId );
51 assertEquals( "bar", key.artifactId );
52 assertEquals( "1.0", key.version );
53 assertEquals( "", key.classifier );
54 assertEquals( "jar", key.type );
55 assertEquals("testrepo", key.repositoryId);
56 }
57
58 public void testArtifactCRUD()
59 throws Exception
60 {
61 ArtifactDAO artiDao = dao.getArtifactDAO();
62
63
64 ArchivaArtifact artifact = artiDao.createArtifact( "org.apache.maven.archiva", "archiva-test-module", "1.0",
65 "", "jar", "testrepo" );
66 assertNotNull( artifact );
67
68
69 artifact.getModel().setLastModified( new Date() );
70 artifact.getModel().setOrigin( "test" );
71
72
73 ArchivaArtifact savedArtifact = artiDao.saveArtifact( artifact );
74 assertNotNull( savedArtifact );
75 String savedKeyId = JDOHelper.getObjectId( savedArtifact.getModel() ).toString();
76 assertEquals( "org.apache.maven.archiva:archiva-test-module:1.0::jar:testrepo", savedKeyId );
77
78
79 List<ArchivaArtifact> artifacts = artiDao.queryArtifacts( null );
80 assertNotNull( artifacts );
81 assertEquals( 1, artifacts.size() );
82
83
84 ArchivaArtifact firstArtifact = (ArchivaArtifact) artifacts.get( 0 );
85 assertNotNull( firstArtifact );
86 assertEquals( "org.apache.maven.archiva", firstArtifact.getGroupId() );
87 assertEquals( "archiva-test-module", firstArtifact.getArtifactId() );
88 assertEquals( "1.0", firstArtifact.getVersion() );
89 assertEquals( "", firstArtifact.getClassifier() );
90 assertEquals( "jar", firstArtifact.getType() );
91
92
93 savedArtifact.getModel().setOrigin( "changed" );
94 artiDao.saveArtifact( savedArtifact );
95
96
97 assertEquals( 1, artiDao.queryArtifacts( null ).size() );
98
99
100 ArchivaArtifact actualArtifact = artiDao.getArtifact( "org.apache.maven.archiva", "archiva-test-module", "1.0",
101 null, "jar", "testrepo" );
102 assertNotNull( actualArtifact );
103
104
105 assertEquals( "archiva-test-module", actualArtifact.getArtifactId() );
106 assertEquals( "changed", actualArtifact.getModel().getOrigin() );
107
108
109 assertEquals( 1, artiDao.queryArtifacts( null ).size() );
110
111
112 artiDao.deleteArtifact( actualArtifact );
113 assertEquals( 0, artiDao.queryArtifacts( null ).size() );
114 }
115 }