package org.apache.archiva.rest.services; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import org.apache.archiva.maven2.model.Artifact; import org.apache.archiva.rest.api.services.MergeRepositoriesService; import org.apache.commons.io.FileUtils; import static org.assertj.core.api.Assertions.assertThat; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.File; import java.util.List; /** * @author Olivier Lamy */ public class MergeRepositoriesServiceTest extends AbstractArchivaRestTest { private static final String TEST_REPOSITORY = "test-repository"; private File repo = new File( System.getProperty( "builddir" ), "test-repository" ); private File repoStage = new File( System.getProperty( "builddir" ), "test-repository-stage" ); @Test public void getMergeConflictedArtifacts() throws Exception { MergeRepositoriesService service = getMergeRepositoriesService( authorizationHeader ); List<Artifact> artifactMetadatas = service.getMergeConflictedArtifacts( TEST_REPOSITORY + "-stage", TEST_REPOSITORY ); log.info( "conflicts: {}", artifactMetadatas ); assertThat( artifactMetadatas ).isNotNull().isNotEmpty().hasSize( 8 ); } @Test public void merge() throws Exception { String mergedArtifactPath = "org/apache/felix/org.apache.felix.bundlerepository/1.6.4/org.apache.felix.bundlerepository-1.6.4.jar"; String mergedArtifactPomPath = "org/apache/felix/org.apache.felix.bundlerepository/1.6.4/org.apache.felix.bundlerepository-1.6.4.pom"; assertTrue( new File( repoStage, mergedArtifactPath ).exists() ); assertTrue( new File( repoStage, mergedArtifactPomPath ).exists() ); MergeRepositoriesService service = getMergeRepositoriesService( authorizationHeader ); service.mergeRepositories( TEST_REPOSITORY + "-stage", TEST_REPOSITORY, true ); assertTrue( new File( repo, mergedArtifactPath ).exists() ); assertTrue( new File( repo, mergedArtifactPomPath ).exists() ); } @After public void deleteStageRepo() throws Exception { waitForScanToComplete( TEST_REPOSITORY ); deleteTestRepo( TEST_REPOSITORY ); FileUtils.deleteDirectory( repo ); FileUtils.deleteDirectory( repoStage ); } @Before public void createStageRepo() throws Exception { FileUtils.copyDirectory( new File( System.getProperty( "basedir" ), "src/test/repo-with-osgi" ), repo ); FileUtils.copyDirectory( new File( System.getProperty( "basedir" ), "src/test/repo-with-osgi-stage" ), repoStage ); createStagedNeededRepo( TEST_REPOSITORY, repo.getAbsolutePath(), true ); } }