private void tryAssert(AssertFunction func) throws Exception { tryAssert(func, 5, 500); }
@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 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 testSearchArtifactsByFacetKeyAllRepos() throws Exception { createArtifactWithGenericMetadataFacet(); tryAssert(()-> { Collection<ArtifactMetadata> artifactsByProperty = repository.searchArtifacts( TEST_METADATA_KEY, TEST_METADATA_VALUE, null, false ); assertThat( artifactsByProperty ).isNotNull().isNotEmpty(); }); }
@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 testGetArtifactsByChecksumMultipleResult() throws Exception { ArtifactMetadata artifact1 = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact1 ); String newProjectId = "another-project"; ArtifactMetadata artifact2 = createArtifact(); artifact2.setProject( newProjectId ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, newProjectId, TEST_PROJECT_VERSION, artifact2 ); repository.save(); tryAssert(()-> { List<ArtifactMetadata> artifacts = new ArrayList<>(repository.getArtifactsByChecksum(TEST_REPO_ID, TEST_SHA1)); Collections.sort(artifacts, new ArtifactMetadataComparator()); assertEquals(Arrays.asList(artifact2, artifact1), artifacts); }); tryAssert(() -> { ArrayList<ArtifactMetadata> artifacts = new ArrayList<>(repository.getArtifactsByChecksum(TEST_REPO_ID, TEST_MD5)); Collections.sort(artifacts, new ArtifactMetadataComparator()); assertEquals(Arrays.asList(artifact2, artifact1), 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 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 )); }
tryAssert(()-> { List<ArtifactMetadata> actual = new ArrayList<>( repository.getArtifactsByDateRange( TEST_REPO_ID, null, null ) );