@Test public void testUpdateArtifactMetadataWithNoExistingFacets() throws Exception { ArtifactMetadata metadata = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata ); metadata = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ).iterator().next(); assertEquals( Collections.<String>emptyList(), new ArrayList<String>( metadata.getFacetIds() ) ); metadata = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata ); metadata = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ).iterator().next(); assertEquals( Collections.<String>emptyList(), new ArrayList<String>( metadata.getFacetIds() ) ); }
@Test public void testRemoveFacet() throws Exception { TestMetadataFacet metadataFacet = new TestMetadataFacet( TEST_VALUE ); repository.addMetadataFacet( TEST_REPO_ID, metadataFacet ); assertEquals( metadataFacet, repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) ); List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); assertFalse( facets.isEmpty() ); repository.removeMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ); assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) ); facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); assertTrue( facets.isEmpty() ); }
@Test public void testGetArtifactsByPropertySingleResult() throws Exception { createArtifactWithData(); // only works on JCR implementation // Collection<ArtifactMetadata> artifactsByProperty = repository.getArtifactsByProperty( "org.name", TEST_ORGANIZATION.getName(), TEST_REPO_ID ); Collection<ArtifactMetadata> artifactsByProperty = repository.getArtifactsByProperty( "url", TEST_URL, TEST_REPO_ID ); assertThat( artifactsByProperty ).hasSize( 1 ); ArtifactMetadata artifactMetadata = artifactsByProperty.iterator().next(); assertThat( artifactMetadata.getId() ).isEqualTo( "projectId-1.0.jar" ); assertThat( artifactMetadata.getSha1() ).isEqualTo( TEST_SHA1 ); assertThat( artifactMetadata.getRepositoryId() ).isEqualTo( TEST_REPO_ID ); }
@Test public void testGetArtifactsByRepoId() throws Exception { ArtifactMetadata artifact = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.save(); tryAssert(()-> { List<ArtifactMetadata> artifacts = repository.getArtifacts(TEST_REPO_ID); assertEquals(Collections.singletonList(artifact), artifacts); }); }
@Test public void testSearchArtifactsByFacetKeyAllRepos() throws Exception { createArtifactWithGenericMetadataFacet(); tryAssert(()-> { Collection<ArtifactMetadata> artifactsByProperty = repository.searchArtifacts( TEST_METADATA_KEY, TEST_METADATA_VALUE, null, false ); assertThat( artifactsByProperty ).isNotNull().isNotEmpty(); }); }
repository.updateProject( TEST_REPO_ID, project2 ); ArtifactMetadata artifact1 = createArtifact(); artifact1.setProject( "project1" ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, "project1", TEST_PROJECT_VERSION, artifact1 ); ArtifactMetadata artifact2 = createArtifact(); artifact2.setProject( "project2" ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, "project2", TEST_PROJECT_VERSION, artifact2 ); tryAssert(()-> { List<ArtifactMetadata> actual = new ArrayList<>( repository.getArtifactsByDateRange( TEST_REPO_ID, null, null ) ); Collections.sort( actual, new ArtifactMetadataComparator() ); assertEquals(expected, actual); }); assertTrue( repository.getArtifacts( TEST_REPO_ID ).isEmpty() ); assertTrue( repository.getRootNamespaces( TEST_REPO_ID ).isEmpty() );
@Test public void testUpdateProjectVersionMetadataIncomplete() throws Exception { ProjectVersionMetadata metadata = new ProjectVersionMetadata(); metadata.setId( TEST_PROJECT_VERSION ); metadata.setIncomplete( true ); repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata ); metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertEquals( true, metadata.isIncomplete() ); assertNull( metadata.getCiManagement() ); assertNull( metadata.getScm() ); assertNull( metadata.getIssueManagement() ); assertNull( metadata.getOrganization() ); assertNull( metadata.getDescription() ); assertNull( metadata.getName() ); assertEquals( TEST_PROJECT_VERSION, metadata.getId() ); assertEquals( TEST_PROJECT_VERSION, metadata.getVersion() ); assertTrue( metadata.getMailingLists().isEmpty() ); assertTrue( metadata.getLicenses().isEmpty() ); assertTrue( metadata.getDependencies().isEmpty() ); }
private static ArtifactMetadata createArtifact() { return createArtifact( "jar" ); }
@Test public void testGetProjectVersionOnly() throws Exception { assertNull( repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ); assertNull( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) ); assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty(); ProjectVersionMetadata metadata = new ProjectVersionMetadata(); metadata.setId( TEST_PROJECT_VERSION ); repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata ); metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertEquals( TEST_PROJECT_VERSION, metadata.getId() ); // test that namespace and project is also constructed Collection<String> namespaces = repository.getRootNamespaces( TEST_REPO_ID ); assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_NAMESPACE ); ProjectMetadata projectMetadata = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); assertNotNull( projectMetadata ); assertEquals( TEST_PROJECT, projectMetadata.getId() ); assertEquals( TEST_NAMESPACE, projectMetadata.getNamespace() ); }
@Test public void testRemoveFacets() throws Exception { repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( TEST_VALUE ) ); List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); assertFalse( facets.isEmpty() ); repository.removeMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); assertTrue( facets.isEmpty() ); }
private void createArtifactWithGenericMetadataFacet() throws MetadataRepositoryException, MetadataResolutionException { createArtifactWithGenericMetadataFacet( 1 ); }
@Test public void testGetMetadataFacets() throws Exception { repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( TEST_VALUE ) ); assertEquals( Collections.singletonList( TEST_NAME ), repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ) ); }
@Test public void testGetArtifactsByMetadataAllRepositories() throws Exception { createArtifactWithMavenArtifactFacet(); tryAssert(()-> { Collection<ArtifactMetadata> artifactsByMetadata = repository.getArtifactsByMetadata("foo", TEST_METADATA_VALUE, null); assertThat(artifactsByMetadata).hasSize(1); ArtifactMetadata artifactMetadata = artifactsByMetadata.iterator().next(); assertThat(artifactMetadata.getId()).isEqualTo("projectId-1.0.jar"); assertThat(artifactMetadata.getSha1()).isEqualTo(TEST_SHA1); assertThat(artifactMetadata.getRepositoryId()).isEqualTo(TEST_REPO_ID); MetadataFacet facet = artifactMetadata.getFacet(TEST_FACET_ID); assertThat(facet).isNotNull(); assertThat(facet.toProperties()).isEqualTo(Collections.singletonMap("foo", TEST_METADATA_VALUE)); }); }
@Test public void testGetProjectOnly() throws Exception { assertNull( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) ); assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty(); ProjectMetadata project = new ProjectMetadata(); project.setId( TEST_PROJECT ); project.setNamespace( TEST_NAMESPACE ); repository.updateProject( TEST_REPO_ID, project ); project = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); assertEquals( TEST_PROJECT, project.getId() ); assertEquals( TEST_NAMESPACE, project.getNamespace() ); // test that namespace is also constructed Collection<String> namespaces = repository.getRootNamespaces( TEST_REPO_ID ); assertThat( namespaces ).isNotNull().isNotEmpty().contains( TEST_NAMESPACE ).hasSize( 1 ); }
assertEquals( TEST_PROJECT_VERSION, metadata.getId() ); assertEquals( TEST_PROJECT_VERSION, metadata.getVersion() ); assertEquals( "project name", metadata.getName() ); assertEquals( "project description", metadata.getDescription() ); assertEquals( "the url", metadata.getUrl() ); assertEquals( "connection", metadata.getScm().getConnection() ); assertEquals( "dev conn", metadata.getScm().getDeveloperConnection() ); assertEquals( "url", metadata.getScm().getUrl() ); assertEquals( "system", metadata.getCiManagement().getSystem() ); assertEquals( "ci url", metadata.getCiManagement().getUrl() ); assertEquals( "system", metadata.getIssueManagement().getSystem() ); assertEquals( "issue tracker url", metadata.getIssueManagement().getUrl() ); assertEquals( TEST_ORGANIZATION.getName(), metadata.getOrganization().getName() ); assertEquals( TEST_ORGANIZATION.getUrl(), metadata.getOrganization().getUrl() ); assertEquals( 1, metadata.getMailingLists().size() ); MailingList retrievedMailingList = metadata.getMailingLists().get( 0 ); assertEquals( mailingList.getName(), retrievedMailingList.getName() ); assertEquals( mailingList.getMainArchiveUrl(), retrievedMailingList.getMainArchiveUrl() ); assertEquals( mailingList.getPostAddress(), retrievedMailingList.getPostAddress() ); assertEquals( mailingList.getSubscribeAddress(), retrievedMailingList.getSubscribeAddress() ); assertEquals( mailingList.getUnsubscribeAddress(), retrievedMailingList.getUnsubscribeAddress() ); assertEquals( 1, metadata.getLicenses().size() ); l = metadata.getLicenses().get( 0 );
@Test public void testUpdateProjectVersionMetadataWithExistingFacetsFacetPropertyWasRemoved() throws Exception { ProjectVersionMetadata metadata = new ProjectVersionMetadata(); metadata.setId( TEST_PROJECT_VERSION ); Map<String, String> additionalProps = new HashMap<>(); additionalProps.put( "deleteKey", "deleteValue" ); MetadataFacet facet = new TestMetadataFacet( TEST_FACET_ID, "baz", additionalProps ); metadata.addFacet( facet ); repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata ); metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertThat( metadata.getFacetIds() ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_FACET_ID ); TestMetadataFacet testFacet = (TestMetadataFacet) metadata.getFacet( TEST_FACET_ID ); Map<String, String> facetProperties = testFacet.toProperties(); assertEquals( "deleteValue", facetProperties.get( "deleteKey" ) ); facetProperties.remove( "deleteKey" ); TestMetadataFacet newTestFacet = new TestMetadataFacet( TEST_FACET_ID, testFacet.getValue(), facetProperties ); metadata.addFacet( newTestFacet ); repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata ); metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertThat( metadata.getFacetIds() ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_FACET_ID ); testFacet = (TestMetadataFacet) metadata.getFacet( TEST_FACET_ID ); assertFalse( testFacet.toProperties().containsKey( "deleteKey" ) ); }
@Test public void testGetMetadataFacetWhenEmpty() throws Exception { assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) ); }
@Test public void testRemoveFacetsWhenEmpty() throws Exception { List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); assertTrue( facets.isEmpty() ); repository.removeMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); assertTrue( facets.isEmpty() ); }
private void createArtifactWithMavenArtifactFacet( int artifacts ) throws MetadataRepositoryException, MetadataResolutionException { TestMetadataFacet facet = new TestMetadataFacet( TEST_METADATA_VALUE ); createArtifactWithFacet( artifacts, facet, null ); }
private void createArtifactWithMavenArtifactFacet() throws MetadataRepositoryException, MetadataResolutionException { createArtifactWithMavenArtifactFacet( 1 ); }