### Question:
GAV implements Comparable<GAV> { public static GAV getInstance(final String coordinates) { final String[] coordinateArray = ArrayUtils.nullToEmpty(StringUtils.split(coordinates, MavenUtils.COORDINATE_SEPARATOR)); Validate.isTrue(coordinateArray.length == 3, "Expected three coordinates, but found " + coordinateArray.length + ": " + Arrays.toString(coordinateArray) + "; did you use the '" + MavenUtils.COORDINATE_SEPARATOR + "' separator?"); return new GAV(coordinateArray[0], coordinateArray[1], coordinateArray[2]); } GAV(final String groupId, final String artifactId, final String version); static GAV getInstance(final String coordinates); int compareTo(final GAV other); @Override boolean equals(final Object other); String getArtifactId(); String getGroupId(); String getVersion(); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testGetInstance() { final String coordinates = StringUtils.join(new String[] {GROUP_ID, ARTIFACT_ID, VERSION}, MavenUtils.COORDINATE_SEPARATOR); final GAV gav = GAV.getInstance(coordinates); assertEquals(GROUP_ID, gav.getGroupId()); assertEquals(ARTIFACT_ID, gav.getArtifactId()); assertEquals(VERSION, gav.getVersion()); }