/*-
* Copyright (c) 2014-2015 Red Hat, Inc.
*
* Licensed 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.fedoraproject.xmvn.artifact;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/**
* @author Mikolaj Izdebski
*/
public class DefaultArtifactTest
{
/**
* Test one-argument constructor.
*/
@Test
public void testConstructor1()
throws Exception
{
Artifact artifact2 = new DefaultArtifact( "gid:aid" );
assertEquals( "gid", artifact2.getGroupId() );
assertEquals( "aid", artifact2.getArtifactId() );
assertEquals( "jar", artifact2.getExtension() );
assertEquals( "", artifact2.getClassifier() );
assertEquals( "SYSTEM", artifact2.getVersion() );
assertNull( artifact2.getPath() );
Artifact artifact3 = new DefaultArtifact( "gid:aid:ver" );
assertEquals( "gid", artifact3.getGroupId() );
assertEquals( "aid", artifact3.getArtifactId() );
assertEquals( "jar", artifact3.getExtension() );
assertEquals( "", artifact3.getClassifier() );
assertEquals( "ver", artifact3.getVersion() );
assertNull( artifact3.getPath() );
Artifact artifact4 = new DefaultArtifact( "gid:aid:ext:ver" );
assertEquals( "gid", artifact4.getGroupId() );
assertEquals( "aid", artifact4.getArtifactId() );
assertEquals( "ext", artifact4.getExtension() );
assertEquals( "", artifact4.getClassifier() );
assertEquals( "ver", artifact4.getVersion() );
assertNull( artifact4.getPath() );
Artifact artifact5 = new DefaultArtifact( "gid:aid:ext:cla:ver" );
assertEquals( "gid", artifact5.getGroupId() );
assertEquals( "aid", artifact5.getArtifactId() );
assertEquals( "ext", artifact5.getExtension() );
assertEquals( "cla", artifact5.getClassifier() );
assertEquals( "ver", artifact5.getVersion() );
assertNull( artifact5.getPath() );
}
/**
* Test one-argument constructor with invalid coordinates.
*/
@Test( expected = IllegalArgumentException.class )
public void testInvalidCoordinates()
throws Exception
{
new DefaultArtifact( "foo" );
}
/**
* Test one-argument constructor with too many fields in coordinates.
*/
@Test( expected = IllegalArgumentException.class )
public void testTooManyFields()
throws Exception
{
new DefaultArtifact( "gid:aid:ext:cla:ver:extra" );
}
/**
* Test two-argument constructor.
*/
@Test
public void testConstructor2()
throws Exception
{
Artifact artifact = new DefaultArtifact( "gid", "aid" );
assertEquals( "gid", artifact.getGroupId() );
assertEquals( "aid", artifact.getArtifactId() );
assertEquals( "jar", artifact.getExtension() );
assertEquals( "", artifact.getClassifier() );
assertEquals( "SYSTEM", artifact.getVersion() );
assertNull( artifact.getPath() );
}
/**
* Test three-argument constructor.
*/
@Test
public void testConstructor3()
throws Exception
{
Artifact artifact = new DefaultArtifact( "gid", "aid", "ver" );
assertEquals( "gid", artifact.getGroupId() );
assertEquals( "aid", artifact.getArtifactId() );
assertEquals( "jar", artifact.getExtension() );
assertEquals( "", artifact.getClassifier() );
assertEquals( "ver", artifact.getVersion() );
assertNull( artifact.getPath() );
}
/**
* Test four-argument constructor.
*/
@Test
public void testConstructor4()
throws Exception
{
Artifact artifact = new DefaultArtifact( "gid", "aid", "ext", "ver" );
assertEquals( "gid", artifact.getGroupId() );
assertEquals( "aid", artifact.getArtifactId() );
assertEquals( "ext", artifact.getExtension() );
assertEquals( "", artifact.getClassifier() );
assertEquals( "ver", artifact.getVersion() );
assertNull( artifact.getPath() );
}
/**
* Test five-argument constructor.
*/
@Test
public void testConstructor5()
throws Exception
{
Artifact artifact = new DefaultArtifact( "gid", "aid", "ext", "cla", "ver" );
assertEquals( "gid", artifact.getGroupId() );
assertEquals( "aid", artifact.getArtifactId() );
assertEquals( "ext", artifact.getExtension() );
assertEquals( "cla", artifact.getClassifier() );
assertEquals( "ver", artifact.getVersion() );
assertNull( artifact.getPath() );
}
/**
* Test if string conversion produces expected coordinates.
*/
@Test
public void testToString()
throws Exception
{
Artifact artifact2 = new DefaultArtifact( "gid", "aid" );
assertEquals( "gid:aid:jar:SYSTEM", artifact2.toString() );
Artifact artifact3 = new DefaultArtifact( "gid", "aid", "ver" );
assertEquals( "gid:aid:jar:ver", artifact3.toString() );
Artifact artifact4 = new DefaultArtifact( "gid", "aid", "ext", "ver" );
assertEquals( "gid:aid:ext:ver", artifact4.toString() );
Artifact artifact5 = new DefaultArtifact( "gid", "aid", "ext", "cla", "ver" );
assertEquals( "gid:aid:ext:cla:ver", artifact5.toString() );
}
/**
* Test if equality behaves sanely.
*/
@Test
public void testEquals()
throws Exception
{
Artifact artifact = new DefaultArtifact( "gid", "aid", "ext", "cla", "ver" );
assertTrue( artifact.equals( artifact ) );
assertFalse( artifact.equals( null ) );
assertFalse( artifact.equals( 42 ) );
Artifact artifact0 = new DefaultArtifact( "gid:aid:ext:cla:ver" );
assertTrue( artifact.equals( artifact0 ) );
Artifact artifact1 = new DefaultArtifact( "gidX", "aid", "ext", "cla", "ver" );
Artifact artifact2 = new DefaultArtifact( "gid", "aidX", "ext", "cla", "ver" );
Artifact artifact3 = new DefaultArtifact( "gid", "aid", "extX", "cla", "ver" );
Artifact artifact4 = new DefaultArtifact( "gid", "aid", "ext", "claX", "ver" );
Artifact artifact5 = new DefaultArtifact( "gid", "aid", "ext", "cla", "verX" );
assertFalse( artifact.equals( artifact1 ) );
assertFalse( artifact.equals( artifact2 ) );
assertFalse( artifact.equals( artifact3 ) );
assertFalse( artifact.equals( artifact4 ) );
assertFalse( artifact.equals( artifact5 ) );
}
}