blob: f3e4d36207b72ed48d4fb3711b84f40202c1713a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2017 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
* Ericsson AB (Pascal Rapicault) - Support to reuse bundles in place
*******************************************************************************/
package org.eclipse.equinox.p2.tests.touchpoint.eclipse;
import java.io.File;
import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Map;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.equinox.internal.p2.touchpoint.eclipse.AggregatedBundleRepository;
import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
import org.eclipse.equinox.p2.core.IAgentLocation;
import org.eclipse.equinox.p2.core.ProvisionException;
import org.eclipse.equinox.p2.engine.IProfile;
import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository;
import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
/**
* @since 1.0
*/
public class UtilTest extends AbstractProvisioningTest {
/*
* Constructor for the class.
*/
public UtilTest(String name) {
super(name);
}
/*
* Run all the tests in this class.
*/
public static Test suite() {
return new TestSuite(UtilTest.class);
}
public void testDefaultBundlePool() {
IProfile profile = createProfile("test");
IAgentLocation agentLocation = (IAgentLocation) getAgent().getService(IAgentLocation.SERVICE_NAME);
assertEquals(agentLocation.getDataArea("org.eclipse.equinox.p2.touchpoint.eclipse"), Util.getBundlePoolLocation(getAgent(), profile));
}
public void testExplicitBundlePool() throws MalformedURLException {
Map<String, String> props = new HashMap<>();
File cacheDir = new File(System.getProperty("java.io.tmpdir"), "cache");
props.put(IProfile.PROP_CACHE, cacheDir.toString());
IProfile profile = createProfile("test", props);
assertEquals(cacheDir.toURL().toExternalForm(), Util.getBundlePoolLocation(getAgent(), profile).toString());
}
public void testCheckRunnableArtifactRepos() throws ProvisionException {
File withFlag = getTestData("Get artifact repo in runnable format", "testData/utilTest/repoWithFlag");
File withoutFlag = getTestData("Get artifact repo in runnable format", "testData/utilTest/repoWithoutFlag");
IArtifactRepository repoWithFlag = getArtifactRepositoryManager().loadRepository(withFlag.toURI(), new NullProgressMonitor());
IArtifactRepository repoWithoutFlag = getArtifactRepositoryManager().loadRepository(withoutFlag.toURI(), new NullProgressMonitor());
assertNotNull(repoWithFlag.getProperty(IArtifactRepository.PROP_RUNNABLE));
assertTrue(Boolean.TRUE.toString().equalsIgnoreCase(repoWithFlag.getProperty(IArtifactRepository.PROP_RUNNABLE)));
assertNull(repoWithoutFlag.getProperty(IArtifactRepository.PROP_RUNNABLE));
AggregatedBundleRepository repos = (AggregatedBundleRepository) Util.getAggregatedBundleRepository(getAgent(), null, 0);
assertTrue(repos.testGetBundleRepositories().contains(repoWithFlag));
assertTrue(!repos.testGetBundleRepositories().contains(repoWithoutFlag));
}
}