@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 testGetArtifactsByDateRangeLowerAndUpperBound() throws Exception { ArtifactMetadata artifact = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.save(); Date lower = new Date( artifact.getWhenGathered().getTime() - 10000 ); Date upper = new Date( artifact.getWhenGathered().getTime() + 10000 ); List<ArtifactMetadata> artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, lower, upper ); assertEquals( Collections.singletonList( artifact ), artifacts ); }
@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 testGetArtifactsByChecksumSingleResultMd5() throws Exception { ArtifactMetadata artifact = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.save(); assertEquals( Collections.singletonList( artifact ), new ArrayList<>( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_MD5 ) ) ); }
@Test public void testGetArtifactsByDateRangeUpperBound() throws Exception { ArtifactMetadata artifact = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.save(); Date upper = new Date( artifact.getWhenGathered().getTime() + 10000 ); List<ArtifactMetadata> artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, null, upper ); assertEquals( Collections.singletonList( artifact ), artifacts ); }
@Test public void testGetArtifactsByDateRangeLowerBound() throws Exception { ArtifactMetadata artifact = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.save(); Date date = new Date( artifact.getWhenGathered().getTime() - 10000 ); List<ArtifactMetadata> artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, date, null ); assertEquals( Collections.singletonList( artifact ), artifacts ); }
@Test public void testGetArtifactsByChecksumSingleResultSha1() throws Exception { ArtifactMetadata artifact = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.save(); assertEquals( Collections.singletonList( artifact ), new ArrayList<>( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_SHA1 ) ) ); }
@Test public void testGetArtifactsByChecksumDeepNamespace() throws Exception { ArtifactMetadata artifact = createArtifact(); String namespace = "multi.level.ns"; artifact.setNamespace( namespace ); repository.updateArtifact( TEST_REPO_ID, namespace, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.save(); tryAssert(()->assertEquals( Collections.singletonList( artifact ), new ArrayList<>( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_SHA1 ) ) )); tryAssert(()->assertEquals( Collections.singletonList( artifact ), new ArrayList<>( repository.getArtifactsByChecksum( TEST_REPO_ID, TEST_MD5 ) ) ) ); }
@Test public void testGetArtifacts() throws Exception { ArtifactMetadata artifact1 = createArtifact(); ArtifactMetadata artifact2 = createArtifact( "pom" ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact1 ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact2 ); Collection<ArtifactMetadata> artifacts = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); ArrayList<ArtifactMetadata> actual = new ArrayList<>( artifacts ); Collections.sort( actual,( o1, o2 ) -> o1.getId().compareTo( o2.getId() ) ); assertEquals( Arrays.asList( artifact1, artifact2 ), actual ); }
@Test public void testGetArtifactsByDateRangeOpen() throws Exception { ArtifactMetadata artifact = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.save(); List<ArtifactMetadata> artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, null, null ); assertEquals( Collections.singletonList( artifact ), artifacts ); }
@Test public void testGetArtifactsByDateRangeMultipleCopies() throws Exception { ArtifactMetadata artifact = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); ArtifactMetadata secondArtifact = createArtifact(); secondArtifact.setRepositoryId( OTHER_REPO_ID ); repository.updateArtifact( OTHER_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, secondArtifact ); repository.save(); // test it restricts to the appropriate repository assertEquals( Collections.singletonList( artifact ), repository.getArtifactsByDateRange( TEST_REPO_ID, null, null ) ); assertEquals( Collections.singletonList( secondArtifact ), repository.getArtifactsByDateRange( OTHER_REPO_ID, null, null ) ); }
@Test public void testGetRepositories() throws Exception { // currently set up this way so the behaviour of both the test and the mock config return the same repository // set as the File implementation just uses the config rather than the content repository.updateNamespace( TEST_REPO_ID, "namespace" ); repository.updateNamespace( OTHER_REPO_ID, "namespace" ); Collection<String> repositories = repository.getRepositories(); assertEquals( "repository.getRepositories() -> " + repositories, // Sets.newLinkedHashSet( TEST_REPO_ID, OTHER_REPO_ID ), // new LinkedHashSet<String>( repositories ) ); // }
@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 testGetArtifactsByRepoIdMultipleCopies() throws Exception { ArtifactMetadata artifact = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); ArtifactMetadata secondArtifact = createArtifact(); secondArtifact.setRepositoryId( OTHER_REPO_ID ); repository.updateArtifact( OTHER_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, secondArtifact ); repository.save(); // test it restricts to the appropriate repository tryAssert(() -> assertEquals( Collections.singletonList( artifact ), repository.getArtifacts( TEST_REPO_ID ) )); tryAssert(() -> assertEquals( Collections.singletonList( secondArtifact ), repository.getArtifacts( OTHER_REPO_ID ) )); }
@Test public void testGetMetadataFacet() throws Exception { repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( TEST_VALUE ) ); TestMetadataFacet test = (TestMetadataFacet) repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ); assertEquals( new TestMetadataFacet( TEST_VALUE ), test ); }
@Test public void testGetMetadataFacetWhenDefaultValue() throws Exception { repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( null ) ); MetadataFacet metadataFacet = repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ); assertEquals( new TestMetadataFacet( TEST_METADATA_VALUE ), metadataFacet ); }
@Test public void testGetArtifactsByDateRangeSparseNamespace() throws Exception { String namespace = "org.apache.archiva"; ArtifactMetadata artifact = createArtifact(); artifact.setNamespace( namespace ); repository.updateArtifact( TEST_REPO_ID, namespace, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.save(); List<ArtifactMetadata> artifacts = repository.getArtifactsByDateRange( TEST_REPO_ID, null, null ); tryAssert(()->assertEquals( Collections.singletonList( artifact ), artifacts )); }
@Test public void deleteProject() throws Exception { ArtifactMetadata artifact = createArtifact(); artifact.addFacet( new TestMetadataFacet( "value" ) ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); assertEquals( 1, repository.getProjectVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ).size() ); repository.removeProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); Collection<String> versions = repository.getProjectVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); assertThat( versions ).isNotNull().isEmpty(); }
@Test public void deleteArtifact() throws Exception { ArtifactMetadata artifact = createArtifact(); artifact.addFacet( new TestMetadataFacet( "value" ) ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); Collection<ArtifactMetadata> artifacts = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertEquals( Collections.singletonList( artifact ), new ArrayList<>( artifacts ) ); repository.removeArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact.getId() ); artifacts = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertThat( artifacts ).isNotNull().isEmpty(); }
@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() ); }