package org.springframework.roo.project; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.apache.commons.lang3.StringUtils; import org.junit.Test; /** * Unit test of {@link GAV} * * @author Andrew Swan * @since 1.2.0 */ public class GAVTest { private static final String GROUP_ID = "org.apache.maven"; private static final String VERSION = "5.6"; private static final String ARTIFACT_ID = "maven-surefire-plugin"; private static final GAV GAV_1A = new GAV(GROUP_ID, ARTIFACT_ID, VERSION); private static final GAV GAV_1B = new GAV(GROUP_ID, ARTIFACT_ID, VERSION); private static final GAV GAV_2 = new GAV(GROUP_ID, ARTIFACT_ID, VERSION + ".1"); @Test public void testConstructorAndGetters() { // Set up // Invoke final GAV gav = new GAV(GROUP_ID, ARTIFACT_ID, VERSION); // Check assertEquals(GROUP_ID, gav.getGroupId()); assertEquals(ARTIFACT_ID, gav.getArtifactId()); assertEquals(VERSION, gav.getVersion()); } @Test public void testGetInstance() { // Set up final String coordinates = StringUtils.join(new String[] {GROUP_ID, ARTIFACT_ID, VERSION}, MavenUtils.COORDINATE_SEPARATOR); // Invoke final GAV gav = GAV.getInstance(coordinates); // Check assertEquals(GROUP_ID, gav.getGroupId()); assertEquals(ARTIFACT_ID, gav.getArtifactId()); assertEquals(VERSION, gav.getVersion()); } @Test public void testInstancesWithDifferentVersionsAreNotEqual() { assertFalse(GAV_1A.equals(GAV_2)); assertFalse(GAV_2.equals(GAV_1A)); } @Test public void testInstancesWithDifferentVersionsCompareUnequally() { assertFalse(GAV_1A.compareTo(GAV_2) == 0); } @Test public void testInstancesWithSameCoordinatesAreEqual() { assertTrue(GAV_1A.equals(GAV_1B)); assertTrue(GAV_1B.equals(GAV_1A)); } @Test public void testInstancesWithSameCoordinatesCompareEqually() { assertEquals(0, GAV_1A.compareTo(GAV_1B)); } @Test public void testInstancesWithSameCoordinatesHaveSameHashCode() { assertEquals(GAV_1A.hashCode(), GAV_1B.hashCode()); } }