blob: 5ffd5274df99d3e605f55eb1132d61aadea23494 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 Sonatype, Inc. and others. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Sonatype, Inc. - initial implementation and ideas
******************************************************************************/
package org.eclipse.equinox.p2.cudf.tests;
import junit.framework.TestCase;
import org.eclipse.equinox.p2.cudf.Parser;
import org.eclipse.equinox.p2.cudf.metadata.*;
import org.eclipse.equinox.p2.cudf.query.*;
import org.eclipse.equinox.p2.cudf.solver.ProfileChangeRequest;
import org.eclipse.equinox.p2.cudf.solver.Slicer;
public class KeepHighestVersion extends TestCase {
private ProfileChangeRequest pcr = null;
protected void setUp() throws Exception {
pcr = new Parser().parse(this.getClass().getClassLoader().getResource("testData/keepHighestVersion.cudf").openStream());
}
public void testHighestVersion() {
final String ID = "libxapian-dev";
QueryableArray result = slice(pcr.getInitialState(), ID, new Version(2));
assertEquals(2, result.getSize());
assertEquals(1, result.query(new CapabilityQuery(new RequiredCapability(ID, new VersionRange(new Version(5), true, new Version(5), true))), new Collector(), null).size());
assertEquals(1, result.query(new CapabilityQuery(new RequiredCapability(ID, new VersionRange(new Version(2), true, new Version(2), true))), new Collector(), null).size());
}
private QueryableArray slice(QueryableArray input, String id, Version version) {
return new Slicer(input).slice((InstallableUnit) input.query(new CapabilityQuery(new RequiredCapability(id, new VersionRange(version))), new Collector(), null).iterator().next(), null);
}
}