@Test
public void testGetProjectVersionMetadata()
throws Exception
{
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata(
new ReadMetadataRequest( TEST_REPO_ID, "org.apache.archiva", "archiva-common", "1.2.1" ) );
MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
assertEquals( "jar", facet.getPackaging() );
assertEquals( "http://archiva.apache.org/ref/1.2.1/archiva-base/archiva-common", metadata.getUrl() );
assertEquals( "org.apache.archiva", facet.getParent().getGroupId() );
assertEquals( "archiva-base", facet.getParent().getArtifactId() );
assertEquals( "1.2.1", facet.getParent().getVersion() );
assertEquals( "archiva-common", facet.getArtifactId() );
assertEquals( "org.apache.archiva", facet.getGroupId() );
assertEquals( "continuum", metadata.getCiManagement().getSystem() );
assertEquals( "http://vmbuild.apache.org/continuum", metadata.getCiManagement().getUrl() );
assertNotNull( metadata.getDescription() );
// TODO: this would be better
// assertEquals(
// "Archiva is an application for managing one or more remote repositories, including administration, artifact handling, browsing and searching.",
// metadata.getDescription() );
assertEquals( "1.2.1", metadata.getId() );
assertEquals( "jira", metadata.getIssueManagement().getSystem() );
assertEquals( "http://jira.codehaus.org/browse/MRM", metadata.getIssueManagement().getUrl() );
checkApacheLicense( metadata );
assertEquals( "Archiva Base :: Common", metadata.getName() );
String path = "archiva/tags/archiva-1.2.1/archiva-modules/archiva-base/archiva-common";
assertEquals( ASF_SCM_CONN_BASE + path, metadata.getScm().getConnection() );
assertEquals( ASF_SCM_DEV_CONN_BASE + path, metadata.getScm().getDeveloperConnection() );
assertEquals( ASF_SCM_VIEWVC_BASE + path, metadata.getScm().getUrl() );
checkOrganizationApache( metadata );
assertEquals( 4, metadata.getMailingLists().size() );
assertMailingList( "users", metadata.getMailingLists().get( 0 ), "Archiva User List", true,
"http://www.nabble.com/archiva-users-f16426.html" );
assertMailingList( "dev", metadata.getMailingLists().get( 1 ), "Archiva Developer List", true,
"http://www.nabble.com/archiva-dev-f16427.html" );
assertMailingList( "commits", metadata.getMailingLists().get( 2 ), "Archiva Commits List", false, null );
assertMailingList( "issues", metadata.getMailingLists().get( 3 ), "Archiva Issues List", false,
"http://www.nabble.com/Archiva---Issues-f29617.html" );
List<Dependency> dependencies = metadata.getDependencies();
assertEquals( 10, dependencies.size() );
assertDependency( dependencies.get( 0 ), "commons-lang", "commons-lang", "2.2" );
assertDependency( dependencies.get( 1 ), "commons-io", "commons-io", "1.4" );
assertDependency( dependencies.get( 2 ), "org.slf4j", "slf4j-api", "1.5.0" );
assertDependency( dependencies.get( 3 ), "org.codehaus.plexus", "plexus-component-api", "1.0-alpha-22" );