package io.airlift.airship.shared;
import io.airlift.testing.EquivalenceTester;
import org.testng.Assert;
import org.testng.annotations.Test;
public class TestMavenCoordinates
{
@Test
public void resolvedCoordinates()
{
MavenCoordinates spec = new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", "file-version");
Assert.assertEquals(spec.getGroupId(), "my.groupId");
Assert.assertEquals(spec.getArtifactId(), "artifactId");
Assert.assertEquals(spec.getPackaging(), "packaging");
Assert.assertEquals(spec.getClassifier(), "classifier");
Assert.assertEquals(spec.getVersion(), "version");
Assert.assertEquals(spec.getFileVersion(), "file-version");
Assert.assertEquals(spec, spec);
Assert.assertEquals(spec, new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", "file-version"));
Assert.assertEquals(spec.toGAV(), "my.groupId:artifactId:packaging:classifier:file-version");
Assert.assertEquals(spec.toString(), "my.groupId:artifactId:packaging:classifier:version(file-version)");
Assert.assertTrue(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", "file-version")));
Assert.assertTrue(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", null)));
Assert.assertTrue(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "foo", "packaging", "classifier", "file-version")));
Assert.assertTrue(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", "foo")));
Assert.assertTrue(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", "foo")));
Assert.assertFalse(spec.equalsIgnoreVersion(new MavenCoordinates("foo", "artifactId", "version", "packaging", "classifier", "file-version")));
Assert.assertFalse(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "foo", "version", "packaging", "classifier", "file-version")));
Assert.assertFalse(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "foo", "classifier", "file-version")));
Assert.assertFalse(spec.equalsIgnoreVersion(new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "foo", "file-version")));
}
@Test
public void fullCoordinates()
{
MavenCoordinates spec = MavenCoordinates.fromGAV("my.groupId:artifactId:packaging:classifier:version");
Assert.assertEquals(spec.getGroupId(), "my.groupId");
Assert.assertEquals(spec.getArtifactId(), "artifactId");
Assert.assertEquals(spec.getPackaging(), "packaging");
Assert.assertEquals(spec.getClassifier(), "classifier");
Assert.assertEquals(spec.getVersion(), "version");
Assert.assertEquals(spec.getFileVersion(), "version");
Assert.assertEquals(spec, spec);
Assert.assertEquals(spec, new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", "classifier", null));
Assert.assertEquals(spec.toGAV(), "my.groupId:artifactId:packaging:classifier:version");
Assert.assertEquals(spec.toString(), "my.groupId:artifactId:packaging:classifier:version");
}
@Test
public void packagingCoordinates()
{
MavenCoordinates spec = MavenCoordinates.fromGAV("my.groupId:artifactId:packaging:version");
Assert.assertEquals(spec.getGroupId(), "my.groupId");
Assert.assertEquals(spec.getArtifactId(), "artifactId");
Assert.assertEquals(spec.getPackaging(), "packaging");
Assert.assertNull(spec.getClassifier());
Assert.assertEquals(spec.getVersion(), "version");
Assert.assertEquals(spec.getFileVersion(), "version");
Assert.assertEquals(spec, spec);
Assert.assertEquals(spec, new MavenCoordinates("my.groupId", "artifactId", "version", "packaging", null, null));
Assert.assertEquals(spec.toGAV(), "my.groupId:artifactId:packaging:version");
Assert.assertEquals(spec.toString(), "my.groupId:artifactId:packaging:version");
}
@Test
public void noGroupId()
{
MavenCoordinates spec = new MavenCoordinates(null, "component", "2.0-SNAPSHOT", "packaging", null, "2.0-12345678.123456-1");
Assert.assertNull(spec.getGroupId());
Assert.assertEquals(spec.getArtifactId(), "component");
Assert.assertEquals(spec.getPackaging(), "packaging");
Assert.assertEquals(spec.getVersion(), "2.0-SNAPSHOT");
Assert.assertEquals(spec.getFileVersion(), "2.0-12345678.123456-1");
Assert.assertEquals(spec, spec);
Assert.assertEquals(spec, new MavenCoordinates(null, "component", "2.0-SNAPSHOT", "packaging", null, "2.0-12345678.123456-1"));
Assert.assertEquals(spec.toString(), "component:packaging:2.0-SNAPSHOT(2.0-12345678.123456-1)");
Assert.assertEquals(spec.toGAV(), "component:packaging:2.0-12345678.123456-1");
}
@Test
public void simpleCoordinates()
{
Assert.assertNull(MavenCoordinates.fromGAV("my.groupId:artifactId:version"));
}
@Test
public void shortCoordinates()
{
Assert.assertNull(MavenCoordinates.fromGAV("my.groupId:artifactId:version"));
}
@Test
public void bogusCoordinates()
{
Assert.assertNull(MavenCoordinates.fromGAV("bogus"));
Assert.assertNull(MavenCoordinates.fromGAV("1:2:3:4:5:6:7:8:9:0"));
}
@Test
public void testEquivalence()
{
EquivalenceTester.equivalenceTester()
.addEquivalentGroup(
MavenCoordinates.fromGAV("my.group:artifactId:packaging:version"),
new MavenCoordinates("my.group", "artifactId", "version", "packaging", null, null))
.addEquivalentGroup(
MavenCoordinates.fromGAV("my.group:artifactId:packaging:classifier:version"),
new MavenCoordinates("my.group", "artifactId", "version", "packaging", "classifier", null))
.check();
}
}