blob: bed0b2d17ba7d2063f9919f9434eefb5c67ffe73 [file] [log] [blame]
/**
*
* 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.
*/
package org.apache.karaf.tooling.features;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.easymock.EasyMock;
/**
* Test cases for {@link GenerateFeaturesFileMojo}
*/
public class GenerateFeaturesFileMojoTest extends TestCase {
private GenerateFeaturesFileMojo mojo;
@Override
protected void setUp() throws Exception {
super.setUp();
mojo = new GenerateFeaturesFileMojo();
}
public void testGetBestVersionForArtifactWithOneVersion() throws Exception {
final Artifact artifact = EasyMock.createMock(Artifact.class);
expect(artifact.getVersion()).andReturn("2.1.6");
replay(artifact);
assertEquals("2.1.6_1-SNAPSHOT", mojo.getBestVersionForArtifact(artifact, createVersionList("2.1.6_1-SNAPSHOT")));
}
public void testGetBestVersionForArtifactWithTwoVersions() throws Exception {
final Artifact artifact = EasyMock.createMock(Artifact.class);
expect(artifact.getVersion()).andReturn("2.1.6");
replay(artifact);
assertEquals("2.1.6_2-SNAPSHOT", mojo.getBestVersionForArtifact(artifact, createVersionList("2.1.6_1-SNAPSHOT", "2.1.6_2-SNAPSHOT")));
}
public void testGetBestVersionForArtifactWithSameMajorMinor() throws Exception {
final Artifact artifact = EasyMock.createMock(Artifact.class);
expect(artifact.getVersion()).andReturn("3.8.2").anyTimes();
replay(artifact);
assertEquals("3.8.1_1-SNAPSHOT", mojo.getBestVersionForArtifact(artifact, createVersionList("3.8.1_1-SNAPSHOT")));
}
public void testGetBestVersionForArtifactWithOneNonMatchingVersion() throws Exception {
final Artifact artifact = EasyMock.createMock(Artifact.class);
expect(artifact.getVersion()).andReturn("9.1.0.1").anyTimes();
replay(artifact);
try {
mojo.getBestVersionForArtifact(artifact, createVersionList("9.0_1-SNAPSHOT"));
fail("ArtifactMetadataRetrievalException should have been thrown if no matching version was found");
} catch (ArtifactMetadataRetrievalException e) {
// this is expected
}
}
public void testGetBestVersionForArtifactWithNoVersions() throws Exception {
try {
mojo.getBestVersionForArtifact(EasyMock.createMock(Artifact.class), createVersionList());
fail("ArtifactMetadataRetrievalException should have been thrown if no matching version was found");
} catch (ArtifactMetadataRetrievalException e) {
// this is expected
}
}
private List<ArtifactVersion> createVersionList(String... versions) {
List<ArtifactVersion> results = new ArrayList<ArtifactVersion>();
for (final String version : versions) {
results.add(new DefaultArtifactVersion(version));
}
return results;
}
}